iT邦幫忙

2024 iThome 鐵人賽

DAY 10
0

本篇文章同步發布於 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 的列資料

刪除單一列資料

例如想刪除 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 的特定欄位

刪除單個欄位

例如想刪除 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_quantityunit_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() 方法補充說明

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() 方法還有一些參數可以控制刪除的方式:

  • how:指定要刪除的列或行。例如 any (任何缺失值) 或 all (所有值都是缺失值)。
  • thresh:指定每列或每行必須包含的非缺失值的最小數量。

刪除重複值

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】


上一篇
Python pandas 套件如何排序 DataFrame 資料?【Python 處理 Excel #9】
下一篇
Python pandas 使用 merge 水平合併 DataFrame 資料 【Python 處理 Excel #11】
系列文
30 天學會用 Python pandas 和 openpyxl 處理 Excel —— 成為用 Python 處理 Excel 檔案的高手27
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言