本篇文章同步發布於 Python pandas 刪除 DataFrame 資料 【Python 處理 Excel #10】
這篇文章分享如何刪除 DataFrame 的資料,包含如何刪除特定列或行、如何刪除缺失值,以及如何刪除 DataFrame 中重複的資料。
文章中使用 example.xlsx 作為說明用的案例資料。example.xlsx 的內容如下:
| order_id | order_quantity | unit_price |
|---|---|---|
| 10000 | 45 | 1000 |
| 10001 | 165 | 1000 |
| 10002 | 1200 | |
| 10003 | 120 | 1000 |
| 10003 | 120 | 1000 |
例如想刪除 DataFrame 中索引為 2 的列:
import pandas as pd
# 從 Excel 檔案讀取資料
df = pd.read_excel('example.xlsx')
# 顯示原始資料
print("原始資料:")
print(df)
# 刪除索引為 2 的列
df = df.drop(index=2)
print("\n刪除索引為 2 的列後的資料:")
print(df)
drop(index=2):這段程式碼指定要刪除的列索引為 2。
如果想要刪除多筆列資料,可以將列的索引整理放在列表傳遞給 drop() 方法。例如刪除索引為 1 和 3 的列:
import pandas as pd
# 從 Excel 檔案讀取資料
df = pd.read_excel('example.xlsx')
# 顯示原始資料
print("原始資料:")
print(df)
# 刪除索引為 1 和 3 的列
df = df.drop(index=[1, 3])
print("刪除索引為 1 和 3 的列後的資料:")
print(df)
例如想刪除 DataFrame 中 order_quantity 這個欄位:
import pandas as pd
# 從 Excel 檔案讀取資料
df = pd.read_excel('example.xlsx')
# 顯示原始資料
print("原始資料:")
print(df)
# 刪除 order_quantity 這個欄位
df = df.drop(columns='order_quantity')
print("\n刪除 'order_quantity' 後的資料:")
print(df)
drop(columns='order_quantity'):這段程式碼指定要刪除的欄位名為 order_quantity。
如果想要刪除多個欄位,可以將欄位的名稱整理放在列表傳遞給 drop() 方法。例如刪除 order_quantity 和 unit_price 列:
import pandas as pd
# 從 Excel 檔案讀取資料
df = pd.read_excel('example.xlsx')
# 顯示原始資料
print("原始資料:")
print(df)
# 刪除 'order_quantity' 和 'unit_price'
df = df.drop(columns=['order_quantity', 'unit_price'])
print("\n刪除 'order_quantity' 和 'unit_price' 後的資料:")
print(df)
drop() 方法預設返回一個新的 DataFrame,原始 DataFrame 不會被修改。如果使用 inplace=True 參數,則原始 DataFrame 將被修改,且不會返回任何值。
例如直接在原始的 DataFrame 刪除第 1 列和第 2 列的資料:
import pandas as pd
# 從 Excel 檔案讀取資料
df = pd.read_excel('example.xlsx')
# 顯示原始資料
print("原始資料:")
print(df)
# 直接在原始 DataFrame 上刪除索引為 0 和 2 的列
df.drop(index=[0, 2], inplace=True)
print("\n直接在原始 DataFrame 上刪除索引為 0 和 2 的列後的資料:")
print(df)
之前介紹缺失值的文章提過 dropna() 方法可以刪除包含缺失值的列。例如:
import pandas as pd
# 從 Excel 檔案讀取資料
df = pd.read_excel('example.xlsx')
# 顯示原始資料
print("原始資料:")
print(df)
# 刪除包含缺失值的列
df = df.dropna()
print("\n刪除包含缺失值的列後的資料:")
print(df)
dropna() 方法還有一些參數可以控制刪除的方式:
any (任何缺失值) 或 all (所有值都是缺失值)。drop_duplicates() 方法可以刪除重複的列資料。例如:
import pandas as pd
# 從 Excel 檔案讀取資料
df = pd.read_excel('example.xlsx')
# 顯示原始資料
print("原始資料:")
print(df)
# 刪除重複的列
df = df.drop_duplicates()
print("\n刪除重複的列後的資料:")
print(df)
drop_duplicates():這段程式碼將刪除所有重複的列,只保留第一個出現的列。
drop() 方法刪除特定的列或行。dropna() 方法刪除缺失值。drop_duplicates() 方法刪除重複的列。本篇文章同步發布於 Python pandas 刪除 DataFrame 資料 【Python 處理 Excel #10】