Pandas一组一组地给出错误的输出



我的数据帧:

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

希望这有帮助:(

相关内容

最新更新