Pandas入門

淋雨一直走49發表於2024-06-22

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)

相關文章