Pandas 按年份把行加起来

Pandas 按年份把行加起来,pandas,datetime,time-series,stock,pandas-resample,Pandas,Datetime,Time Series,Stock,Pandas Resample,我的数据框如下所示: Dividends Stock Splits Date 2014-08-13 0.28 0.0 2015-04-27 0.30 0.0 2015-07-31 0.30 0.0 2016-05-05 0.30 0.0 2016-08-15 0.30

我的数据框如下所示:

            Dividends  Stock Splits
Date                               
2014-08-13       0.28           0.0
2015-04-27       0.30           0.0
2015-07-31       0.30           0.0
2016-05-05       0.30           0.0
2016-08-15       0.30           0.0
2017-05-04       0.30           0.0
2017-08-11       0.33           0.0
2018-05-03       0.50           0.0
2018-08-08       0.60           0.0
2019-05-02       0.60           0.0
2019-05-17       0.30           0.0
2019-08-05       0.30           0.0
2019-11-18       0.30           0.0
2020-04-07       0.33           0.0
2020-05-12       0.33           0.0

我想将每年的股息相加,显示如下:

2015  0.60
2016  0.60
2017  0.63
2018  1.10
....
任何帮助都将不胜感激。非常感谢

  • 确保数据框按日期编制索引,列为数字数据类型
  • 然后是一个简单的
    resample()
  • 输出

        Dividends
    Date    
    2014-12-31  0.28
    2015-12-31  0.60
    2016-12-31  0.60
    2017-12-31  0.63
    2018-12-31  1.10
    2019-12-31  1.50
    2020-12-31  0.66
    
    
  • 确保数据框按日期编制索引,列为数字数据类型
  • 然后是一个简单的
    resample()
  • 输出

        Dividends
    Date    
    2014-12-31  0.28
    2015-12-31  0.60
    2016-12-31  0.60
    2017-12-31  0.63
    2018-12-31  1.10
    2019-12-31  1.50
    2020-12-31  0.66
    
    

    您可以使用
    pd.to_datetime
    将索引
    'Date'
    转换为datetime,然后根据索引年份尝试
    groupby
    +
    sum

    df.index=pd.to_datetime(df.index)
    df.groupby(df.index.year)['Dividends'].sum()
    
    输出:

    Date
    2014    0.28
    2015    0.60
    2016    0.60
    2017    0.63
    2018    1.10
    2019    1.50
    2020    0.66
    

    您可以使用
    pd.to_datetime
    将索引
    'Date'
    转换为datetime,然后根据索引年份尝试
    groupby
    +
    sum

    df.index=pd.to_datetime(df.index)
    df.groupby(df.index.year)['Dividends'].sum()
    
    输出:

    Date
    2014    0.28
    2015    0.60
    2016    0.60
    2017    0.63
    2018    1.10
    2019    1.50
    2020    0.66