我正在使用与此类似的数据框:
id year losses revenue expenses
2 2014 1500 5000 400
1 2013 1000 2000 5600
1 2018 500 10000 2100
3 2019 1500 15000 500
2 2011 100 2100 500
4 2010 1200 400 2000
4 2014 1000 22000 1000
我想按id
列中的唯一值进行排序,然后找到losses
revenue
和expenses
的总和。
id losses revenue expenses
2 1600 7100 900
1 1500 12000 7700
3 1500 15000 500
4 2200 22400 3000
我尝试使用
df.groupby('id')['losses', 'revenue', 'expenses'].sum().reset_index()
,但是返回的列比应有的多。我试图利用nunique()
来获取id
的唯一值,然后从中获取剩余列的总和,但是我正在努力寻找一种可行的方法
答案 0 :(得分:1)
将参数sort=False
和as_index=False
添加到DataFrame.groupby
:
df = df.groupby('id', sort=False, as_index=False)['losses', 'revenue', 'expenses'].sum()
print (df)
id losses revenue expenses
0 2 1600 7100 900
1 1 1500 12000 7700
2 3 1500 15000 500
3 4 2200 22400 3000