Pandas入门

Pandas笔记

基本操作

创建DataFrame

def createDataframe(student_data: List[List[int]]) -> pd.DataFrame:
    column_names = ["student_id", "age"]	# 列名
    result_dataframe = pd.DataFrame(student_data, columns=column_names)
    return result_dataframe

获取 DataFrame 的大小

shape[0]表示行数,shape[1]表示列数

def getDataframeSize(players: pd.DataFrame) -> List[int]:
    return [players.shape[0], players.shape[1]]

获取前n行

def selectFirstRows(employees: pd.DataFrame) -> pd.DataFrame:
    return employees.head(3)

选取指定的行

loc[]表示根据标签索引(参数1:筛选条件,参数2:返回列),iloc[]表示根据下标索引

def selectData(students: pd.DataFrame) -> pd.DataFrame:
    return students.loc[students["student_id"]==101, ["name", "age"]]

修改列

def modifySalaryColumn(employees: pd.DataFrame) -> pd.DataFrame:
    employees['salary'] *= 2
    return employees

创建新列

def createBonusColumn(employees: pd.DataFrame) -> pd.DataFrame:
    employees['bonus']=employees['salary']*2
    return employees

删除重复的行

drop_duplicates 函数参数定义:

subset:此参数标识重复行时要考虑的列标签或标签序列。如果未提供,它将处理 DataFrame 中的所有列。

keep:此参数确定要保留的重复行。

'first': (默认) 删除除第一个匹配项以外的重复项。
'last': 删除除最后一个匹配项之外的重复项。
False: 删除所有重复项。
inplace: 如果设置为 True,则直接对对象进行更改,而不返回新的对象。如果设置为 False(默认),则返回丢弃重复的新对象。

def dropDuplicateEmails(customers: pd.DataFrame) -> pd.DataFrame:
    customers.drop_duplicates(subset="email", keep="first", inplace=True)
    return customers

def dropDuplicateEmails(customers: pd.DataFrame) -> pd.DataFrame:
    return customers.drop_duplicates(subset="email", keep="first", inplace=False)

删除丢失的数据

dropna 函数参数定义:

axis: 它可以是 {0 or 'index', 1 or 'columns'}。默认为 0。如果 axis=0,则丢弃包含缺失值的行;如果 axis=1,则丢弃包含缺失值的列。
how: 确定当我们至少有一个 NA 或全部 NA 时,是否从 DataFrame 中删除行或列。
how='any': 如果存在任何 NA 值,则删除该行或列(默认)。
how='all': 如果所有值都为 NA,则删除该行或列。
thresh: 需要多少非 NA 值。这是一个整型参数,需要最小数量的非 NA 值才能保留行/列。
subset: 要考虑的另一个轴上的标签,例如,如果您正在删除行,则这些标签将是要包括的列的列表。当您只想考虑某些列中的 NA 值时,这特别有用。
inplace: 同上

def dropMissingData(students: pd.DataFrame) -> pd.DataFrame:
    return students.dropna(axis=0, how='any', subset=["name"] ,inplace=False)
posted @ 2024-06-22 19:50  淋雨一直走49  阅读(62)  评论(0)    收藏  举报