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)