我的数据帧:
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
如果县在州中重复。它应该忽略重复的条目。但是,它为什么不这么做?
尝试先使用drop_duplicates
过滤数据帧,然后使用groupby和sum:
df.drop_duplicates(['State', 'County']).groupby('State').sum().reset_index()
输出:
State Count
0 CA 250
1 SR 200
另一种方法是使用lambda函数
df.groupby(['State']).apply(lambda x: x.groupby(['County']).Count.first().sum()).reset_index()
输出:
State 0
0 CA 250
1 SR 200
希望这有帮助:(