Cés*_*oza 3 python pandas jupyter-notebook
如何按日期对列的各个部分进行求和,例如在本例中,首先从 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
Run Code Online (Sandbox Code Playgroud)
正如评论中提到的,pandas.cut进行分类,然后groupby:
代码:
df.groupby(pd.cut(df.Date, [2000, 2008, 2016]))['TME'].sum()
Run Code Online (Sandbox Code Playgroud)
测试代码:
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())
Run Code Online (Sandbox Code Playgroud)
结果:
Date
(2000, 2008] 4820.2
(2008, 2016] 6045.6
Name: TME, dtype: float64
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1184 次 |
| 最近记录: |