按天汇总大熊猫数据帧时间序列

时间:2016-03-05 00:27:19

标签: python python-2.7 pandas

我正在将时间序列数据的csv文件读入pandas DataFrame并提取两个相关列,如下所示:

import pandas as pd

df = pd.read_csv('C:\Users\Stuart\Documents\SPYDER\Joint_Strat.csv', index_col=0)

df2 = df['weighted ret']

df2.head()

date
02/01/2007    0.002432
02/01/2007    0.001216
02/01/2007    0.001216
03/01/2007    0.000597
03/01/2007    0.000448
Name: weighted ret, dtype: float64

我想按天计算“加权回收”列,以便每个日期只显示一次,并且该日的总和相应。我尝试了以下方法:

df2 = df2.resample('D',how='sum')

但是得到错误:

TypeError: Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex

然后我尝试通过以下方式将索引更改为日期时间:

import dateutil

df2.index = pd.to_datetime(df2.index)

然后运行

df2 = df2.resample('D',how='sum')

试。

似乎运行但是当我打印出来时

df2.head(10)

我得到以下内容:

2007-01-02   -0.002244
2007-01-03    0.001009
2007-01-04         NaN
2007-01-05         NaN
2007-01-06   -0.000732
2007-01-07         NaN
2007-01-08    0.002016
2007-01-09         NaN
2007-01-10    0.001267
2007-01-11   -0.0012

这是不正确的,因为我有显示NaN的日期值,实际上显示的数字不是每个日内回报总和的正确值。

我认为这应该很简单,但我无法让它正常工作,不知道从哪里开始。有人可以建议我哪里出错吗?非常感谢

2 个答案:

答案 0 :(得分:1)

您应该能够按如下方式对系列的索引进行分组:

df2.groupby(level=0).sum()

答案 1 :(得分:0)

每日样本的DataFrame.resample(),其中包含=" sum"