iT邦幫忙

2024 iThome 鐵人賽

DAY 20
0

上次說了要怎麼創建 DataFrame 和基本操作,這次來說說一些比較進階的操作。
一樣使用上次的範例。

data = [
    ['Alice', 25, 'New York'],
    ['Bob', 30, 'Los Angeles'],
    ['Charlie', 35, 'Chicago']
]
df1 = pd.DataFrame(data, columns=['Name', 'Age', 'City'])

添加和刪除列
添加新列:可以直接為 DataFrame 添加新列,並為其賦值。

df1['Category'] = ['Young' if age < 30 else 'Old' for age in df1['Age']]
print(df1)

刪除列:使用 drop() 函數可以刪除指定的列。

df1 = df1.drop('Category', axis=1)
print(df1)

刪除列時需要指定 axis=1。1 為列 0 為行
選擇資料
選擇特定的行和列:可以使用 loc 或 iloc 選擇特定的行和列。

print(df1.loc[0])  # 選擇第一行
print(df1.loc[:, ['Name', 'Age']])  # 選擇所有行的 'Name' 和 'Age' 列
print(df1.iloc[0])  # 選擇第一行
print(df1.iloc[:, [0, 1]])  # 選擇所有行的第 0 和第 1 列

兩著差別在於 loc 是用標籤,而 iloc 是用索引。
處理缺失值
檢查缺失值:使用 isnull() 可以檢查 DataFrame 中的缺失值。
print(df1.isnull())
填充缺失值:使用 fillna() 可以填充缺失值。
df1['Age'].fillna(0, inplace=True)
刪除缺失值:使用 dropna() 可以刪除包含缺失值的行或列。
df1.dropna(inplace=True)
合併與拼接
合併:使用 merge() 可以根據共同的列合併兩個 DataFrame。

df_a = pd.DataFrame({'Name': ['Alice', 'Bob'], 'Age': [25, 30]})
df_b = pd.DataFrame({'Name': ['Alice', 'Bob'], 'City': ['New York', 'Los Angeles']})
df_c= pd.merge(df_a, df_b, on='Name')
print(df_c)

拼接 DataFrame:使用 concat() 可以將多個 DataFrame 拼接在一起。

df_d = pd.DataFrame({'A': ['A0', 'A1', 'A2'], 'B': ['B0', 'B1', 'B2']})
df_e = pd.DataFrame({'A': ['A3', 'A4', 'A5'], 'B': ['B3', 'B4', 'B5']})
df_f = pd.concat([df_d, df_e])
print(df_f)

排序
按列排序:使用 sort_values() 可以對 DataFrame 進行排序。

df1.sort_values(by='Age', inplace=True)
print(df1)

按索引排序:使用 sort_index() 可以根據索引對 DataFrame 進行排序。

df1.sort_index(inplace=True)
print(df1)

上一篇
Day19 Pandas(三)
下一篇
Day21 Matplotlib(一)
系列文
少年Py 的漂流日記- 第一次相遇30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言