我的数据框:
State = ['CA', 'CA', 'CA', 'CA', 'SR', 'SR', 'SR', 'SR']
County = ['UC', 'UC', 'DB', 'DB', 'DD', 'DD', 'DD', 'DD']
Count = [100, 100, 150, 150, 200, 200, 200, 200]
df = pd.DataFrame({'State': State, 'County': County, 'Count' : Count})
预期输出:
State Count
0 CA 250
1 SR 200
这就是我在做什么:
df_new = df.groupby(['State']).sum().reset_index()
这就是我得到的:
State Count
0 CA 500
1 SR 800
如果县在州中重复出现。它应该忽略重复的条目。但是,为什么不这样做呢?
答案 0 :(得分:1)
尝试先使用drop_duplicates
过滤数据帧,然后再分组和求和:
df.drop_duplicates(['State', 'County']).groupby('State').sum().reset_index()
输出:
State Count
0 CA 250
1 SR 200
答案 1 :(得分:0)
另一种实现方法是使用lambda函数
df.groupby(['State']).apply(lambda x: x.groupby(['County']).Count.first().sum()).reset_index()
输出:
State 0
0 CA 250
1 SR 200
希望这会有所帮助:)