Python 数据帧中的时间增量
有一个关于如何在pandas中创建day count类型列的问题。给定一个日期列表,我希望能够以天为单位计算一个日期与前一个日期之间的差异。现在,我可以用简单的减法来做这个,它会返回一个我认为是timedelta的对象。如果我只需要整数天怎么办。使用.days似乎可以处理两个日期,但我无法处理一个列 比如说我喜欢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
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的解决方案都很有效!