按年份和“ total_vehicles”熊猫数据框架求和

时间:2020-04-26 21:50:17

标签: python pandas dataframe

我有以下数据框 lrdata3 ,我想对每年的total_vehicle求和,而不是对同一年进行多次单独计算。

year	total_vehicles
0	2000	2016
1	2000	1483
2	2000	1275
3	2000	1086
4	2000	816

当我这样做

lrdata3.groupby('year')['total_vehicles'].sum()

我得到的甚至不是数据框

year
2000    419587299
2001    425832533
2002    430480581
2003    434270003
2004    442680113
2005    443366960
2006    452086899
2007    452280161
2008    445462026
2009    443333980
2010    438827716
2011    440461505
2012    440073277
2013    441751395
2014    451394270
2015    460050397
2016    470256985
2017    474693803
2018    473765568

请帮忙吗? 谢谢

3 个答案:

答案 0 :(得分:1)

您可以在一行中完成此操作,并使用此语法获取df。

一些示例数据:

year    total_vehicles
0   2000    2016
1   2000    1483
2   2000    1275
3   2000    1086
4   2000    816
5   2001    2016
6   2001    1483
7   2001    1275
8   2002    1086
9   2002    816

df = pd.read_clipboard()

gb = df.groupby('year').agg({'total_vehicles': 'sum'})

print(gb)

    total_vehicles
year    
2000    6676
2001    4774
2002    1902

print(type(gb))

<class 'pandas.core.frame.DataFrame'>

答案 1 :(得分:0)

lrdata3.groupby('year')['total_vehicles'].sum().to_frame()

groupby and transform

lrdata3['yearlytotal_vehicles']=lrdata3.groupby('year')['total_vehicles'].transform('sum')

答案 2 :(得分:0)

您的代码很好,只需在其中添加一个.reset_index()。像这样:

lrdata3.groupby('year')['total_vehicles'].sum().reset_index()

这将为您提供想要的东西。