如何根据日期汇总特定列

时间:2015-10-14 20:49:23

标签: python date pandas

下面给出了两个数据框:

DF1

     Start Date  End Date                   
 0   20110706    20110803                   
 1   20110803    20110907   

DF2

     DATE       50      51      52      53      54  
  0  20110706   3.51    2.51    1.51    0.51    0   
  1  20110801   10.98   9.98    8.98    7.98    6.98    
  2  20110808   9.45    8.45    7.45    6.45    5.45    
  3  20110906   0       1       23.2    0       1.2 

基于df1,我如何修改df2,以便根据日期在df1开始日期(包括左侧)内的范围求和列。

修改后的df2日期包含在内(。开头日期和结束日期范围包含在df中)

       Start Date  End Date    50      51      52      53      54
  0    20110706    20110803   14.49   12.49   10.49   8.49    6.98
  1    20110803    20110907    9.45    9.45    30.65   6.45    6.65

如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

由于日期在Start DateEnd Date中重复,因此不清楚df2中的日期与开始或结束时的日期完全相同;它是包容性的还是包含在内的。假设它是包容性的,你可以做

df1['Start Date'] = pd.DatetimeIndex(df1['Start Date'])
df1.set_index('Start Date', inplace=True)

df2['DATE'] = pd.to_datetime(df2.DATE)
df2.set_index('DATE', inplace=True)

sums = df2.groupby(df1.index.asof).sum()
pd.concat([df1, sums], axis=1)