groupby
是 pandas 库中的一个功能强大的方法,用于根据一个或多个列对 DataFrame 进行分组。分组后,可以对每个组应用聚合函数,如 count
、sum
、mean
等。
groupby
操作经过优化,处理大数据集时效率较高。假设有一个包含重复值的 DataFrame:
import pandas as pd
data = {
'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
'C': [1, 2, 3, 4, 5, 6, 7, 8],
'D': [10, 20, 30, 40, 50, 60, 70, 80]
}
df = pd.DataFrame(data)
计算每个组中 'A' 列的计数:
grouped = df.groupby('A').size().reset_index(name='count')
print(grouped)
输出:
A count
0 bar 4
1 foo 4
groupby
后的计数结果不正确?原因:
解决方法:
nunique
方法。示例代码:
# 检查数据类型
print(df.dtypes)
# 去重计数
unique_count = df.groupby('A')['C'].nunique().reset_index(name='unique_count')
print(unique_count)
通过以上方法,可以有效地处理具有重复值的 pandas DataFrame 的计数问题。
领取专属 10元无门槛券
手把手带您无忧上云