如何在 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() 等多种方法,可以更轻松、更高效地识别和处理重复数据。
通过使用这些方法,可以识别和删除重复行,计算列中每个唯一值出现的次数,并按特定条件对数据进行分组,以更好地了解数据中的模式和关系。
需要注意的是,不同的方法可能更适合于不同的任务,并且始终建议检查文档并尝试不同的方法以找到最有效的解决方案。