Python 数据帧中的时间增量

Python 数据帧中的时间增量,python,datetime,pandas,Python,Datetime,Pandas,有一个关于如何在pandas中创建day count类型列的问题。给定一个日期列表,我希望能够以天为单位计算一个日期与前一个日期之间的差异。现在,我可以用简单的减法来做这个,它会返回一个我认为是timedelta的对象。如果我只需要整数天怎么办。使用.days似乎可以处理两个日期,但我无法处理一个列 比如说我喜欢 df['day_count'] = (df['INDEX_DATE'] - df['INDEX_DATE'].shift(1)) INDEX\u DATE day\u count 0

有一个关于如何在pandas中创建day count类型列的问题。给定一个日期列表,我希望能够以天为单位计算一个日期与前一个日期之间的差异。现在,我可以用简单的减法来做这个,它会返回一个我认为是timedelta的对象。如果我只需要整数天怎么办。使用.days似乎可以处理两个日期,但我无法处理一个列

比如说我喜欢

df['day_count'] = (df['INDEX_DATE'] - df['INDEX_DATE'].shift(1))
INDEX\u DATE day\u count
0 2009-10-06 NaT
1 2009-10-07 1天
2 2009-10-08 1天
3 2009-10-09 1天
4 2009-10-12三天
5 2009-10-13 1天

我有“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:“Series”对象没有属性“days”

我可以在“1天”左右工作,但我想一定有更好的方法可以做到这一点。

试试这个:

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

您需要
df['day\u count']=(df['INDEX\u DATE']-df['INDEX\u DATE'].shift(1)).dt.days
谢谢,这和MaxU的解决方案都很有效!