如上图,我想使用python pandas,对df1表格按照班级进行分类统计,但是输出结果却出现多个重复的班级,想问下原因是啥
groupby(['班级'])
加方括号试试
借鉴下这个实例的思路:https://www.codenong.com/58811837/
其实,没那么难。
代码,没问题,
会不会是你数据有问题?
你数据有空格的话,那就不一样了。
所以,你可以先检查下数据看看。
删除分组后重复的行,可以在 groupby 函数后使用 drop_duplicates() 方法。
例如:
import pandas as pd
df = pd.DataFrame({'A': ['foo', 'bar', 'baz'] * 3,
'B': [1, 2, 3] * 3,
'C': [4, 5, 6] * 3})
# 首先按 'A' 和 'B' 分组
grouped = df.groupby(['A', 'B']).sum()
# 删除分组后重复的行
grouped = grouped.drop_duplicates()
这将会返回一个新的 dataframe,里面没有重复行。
使用 pandas 对 DataFrame 进行分组统计时出现重复班级的原因可能有多种,其中一种可能是班级列中存在空值或缺失值。Pandas 会把这些缺失值视为一种特殊值,因此在分组统计时可能会统计多次。
另一种可能是班级列中有重复值,你可能采用了df1.duplicated() 检查重复行,但是如果在某些行班级相同但其它列不同的话是不会被检查为重复行的
解决方法可以是:
在分组之前,先使用 df.dropna() 或 df.drop_duplicates() 删除空值或重复值。
使用 df.groupby('class').sum() 或 df.groupby('class').count() 进行分组统计
对df1表格先进行去重,再分组统计
如果这些都不能解决问题,请尝试提供代码和数据的样例,这样我可以更好的帮助你分析问题