如何使用 Pandas 按日期对列的部分进行求和?

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)

Ste*_*uch 5

正如评论中提到的,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)