按年份和数据框的总金额

2024-10-02 08:22:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据框lrdata3,我想对每年的车辆总数进行合计,而不是对同一年的多个单独车辆进行合计

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

需要帮忙吗? 谢谢


Tags: 数据yeartotalsumgroupby总数车辆vehicles
3条回答
lrdata3.groupby('year')['total_vehicles'].sum().to_frame()

groupby and transform

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

您可以在一行中完成,并使用此语法获得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'>

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

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

这会让你得到你想要的

相关问题 更多 >

    热门问题