如何在 Pandas DataFrame 中統計重複值?
Pandas 是一個流行的 Python 庫,用於資料操作和分析。資料分析中的一項常見任務是計算 Pandas DataFrame 中重複值的個數。當多行在所有列或部分列中具有相同的值時,可能會出現重複項。
根據分析的具體要求,計算 Pandas DataFrame 中重複值的方法有多種。一種常見的方法是使用 duplicated() 方法,該方法返回一個布林型 Series,指示每一行是否為前一行的重複項。預設情況下,該方法在檢查重複項時會考慮所有列,但可以透過將列的子集傳遞給 subset 引數來自定義此行為。
識別出重複項後,可以使用 duplicated() 返回的布林型 Series 的 sum() 方法對其進行計數。或者,我們也可以使用 pivot_table() 方法來計算重複項的計數。
另一種計算重複項的方法是使用 groupby() 方法按感興趣的列對 DataFrame 進行分組,然後計算每個組出現的次數。這可以透過使用所得分組 DataFrame 的 size() 方法來實現。
讓我們首先使用 pivot_table() 方法來統計 Pandas DataFrame 中可能存在的重複項。
pivot_table
pivot_table() 方法是彙總和聚合 Pandas DataFrame 中資料的強大工具。它允許我們按一列或多列對資料進行分組,並計算每個組的彙總統計資料。在計算重複項的情況下,我們可以按要檢查重複項的列對資料進行分組,然後使用 count() 方法計算每個組出現的次數。
請考慮下面顯示的程式碼,我們將在其中使用 pivot_table() 方法。
示例
import pandas as pd # create a sample DataFrame df = pd.DataFrame({'A': [1, 2, 2, 3, 3, 3], 'B': ['a', 'a', 'b', 'b', 'b', 'c'], 'C': ['x', 'x', 'y', 'y', 'z', 'z']}) # group the data by columns A and B, and count the number of occurrences of each group dup_counts = df.pivot_table(index=['A', 'B'], aggfunc='size') print(dup_counts)
說明
在此示例中,我們使用 pivot_table() 按列 A 和 B 對 DataFrame 進行分組,並使用 size() 方法計算每個組的大小。生成的 dup_counts 變數是一個 Series,顯示列 A 和 B 中每個唯一值組合出現的次數。此資訊可用於識別和分析 DataFrame 中的重複資料。
要執行程式碼,我們需要首先安裝 pandas 庫,然後執行下面顯示的命令。
命令
pip3 install pandas python3 main.py
上述命令的輸出將是
輸出
A B 1 a 1 2 a 1 b 1 3 b 2 c 1 dtype: int64
duplicated()
duplicated() 方法是 Python 的 pandas 庫中的一個函式,用於識別和返回 DataFrame 中重複的行。該方法透過將每一行與 DataFrame 中的所有其他行進行比較來識別重複的行,並返回一個布林型序列,其中 True 表示該行是重複行。
現在讓我們藉助一個示例使用 duplicated() 方法。
請考慮下面顯示的程式碼。
示例
import pandas as pd # create a sample DataFrame df = pd.DataFrame({'A': [1, 2, 2, 3, 3, 3], 'B': ['a', 'a', 'b', 'b', 'b', 'c'], 'C': ['x', 'x', 'y', 'y', 'z', 'z']}) # identify the duplicated rows based on all columns dups = df.duplicated() # count the number of duplicated rows dup_count = dups.sum() print("Number of duplicated rows: ", dup_count)
說明
在此示例中,我們使用 duplicated() 方法識別 DataFrame 中重複的行。預設情況下,該方法在檢查重複項時會考慮所有列。然後,我們使用 sum() 方法計算重複行的數量,在本例中為 3。
輸出
Number of duplicated rows: 3
結論
總之,計算 Pandas DataFrame 中的重複值是資料清理和分析中的重要步驟。藉助 groupby()、value_counts()、pivot_table() 和 duplicated() 等多種方法,可以更輕鬆、更高效地識別和處理重複資料。
透過使用這些方法,可以識別和刪除重複行,計算列中每個唯一值出現的次數,並按特定條件對資料進行分組,以更好地瞭解資料中的模式和關係。
需要注意的是,不同的方法可能更適合於不同的任務,並且始終建議檢查文件並嘗試不同的方法以找到最有效的解決方案。