如何按日期汇总列的部分,例如在本例中,首先是2000年到2008年,然后是2009年到2016年?
Date Total Managed Expenditure
0 2001 503.2
1 2002 529.9
2 2003 559.8
3 2004 593.2
4 2005 629.5
5 2006 652.1
6 2007 664.3
7 2008 688.2
8 2009 732.0
9 2010 759.2
10 2011 769.2
11 2012 759.8
12 2013 760.6
13 2014 753.3
14 2015 757.6
15 2016 753.9
答案 0 :(得分:4)
正如评论中所述,pandas.cut
要进行分类,然后groupby
:
<强>代码:强>
df.groupby(pd.cut(df.Date, [2000, 2008, 2016]))['TME'].sum()
测试代码:
df = pd.read_fwf(StringIO(
u"""
Date TME
2001 503.2
2002 529.9
2003 559.8
2004 593.2
2005 629.5
2006 652.1
2007 664.3
2008 688.2
2009 732.0
2010 759.2
2011 769.2
2012 759.8
2013 760.6
2014 753.3
2015 757.6
2016 753.9"""
), header=1)\
print(df.groupby(pd.cut(df.Date, [2000, 2008, 2016]))['TME'].sum())
<强>结果:强>
Date
(2000, 2008] 4820.2
(2008, 2016] 6045.6
Name: TME, dtype: float64
答案 1 :(得分:2)
df.groupby(df.Date.le(2008)).TME.sum()