熊猫数据帧中的时间增量

时间:2016-11-16 19:56:42

标签: python datetime pandas

有关于如何在pandas中创建日计数类型列的问题。给定日期列表,我希望能够计算从一个日期到上一个日期的差异。现在,我可以通过简单的减法来做到这一点,它会给我一个timedelta对象,我想。如果我只想要整数天,该怎么办?使用.days似乎可以使用两个日期,但我无法使用列。

我们这样说,

df['day_count'] = (df['INDEX_DATE'] - df['INDEX_DATE'].shift(1))

INDEX_DATE day_count 0 2009-10-06 NaT 1 2009-10-07 1 days 2 2009-10-08 1 days 3 2009-10-09 1 days 4 2009-10-12 3 days 5 2009-10-13 1 days

我得到了1天' ....我只想要1。

我可以像这样使用.day,它会返回一个数字,但它不会处理整个列。

(df['INDEX_DATE'][1] - df['INDEX_DATE'][0]).days

如果我尝试这样的话:

df['day_count'] = (df['INDEX_DATE'] - df['INDEX_DATE'].shift(1)).days

我收到了一个错误 AttributeError:'系列'对象没有属性'天'

我可以在一天内工作''但我认为必须有更好的方法来做到这一点。

1 个答案:

答案 0 :(得分:2)

试试这个:

In [197]: df['day_count'] = df.INDEX_DATE.diff().dt.days

In [198]: df
Out[198]:
  INDEX_DATE  day_count
0 2009-10-06        NaN
1 2009-10-07        1.0
2 2009-10-08        1.0
3 2009-10-09        1.0
4 2009-10-12        3.0
5 2009-10-13        1.0