首页 > 解决方案 > 带有日期列的 df 在当前和下一行的日期之间添加一个持续时间列

问题描述

假设我有一个日期的df:

date          quantity
2015-01-01    100
2016-01-01    500
2016-01-05    100

我想添加另一个关于当前行日期和下一行日期之间时间的新列。如果是最后一行,请参考今天的日期。

date          quantity    days
2015-01-01    100         365
2016-01-01    500         4
2016-01-05    100         1227

注意:1227 是从 2016-01-05 到 2019-05-16(今天)的天数。我可以用循环来做到这一点,只是想知道我是否可以利用 pandas 来干净地做到这一点。

标签: pythonpandasdataframe

解决方案


如果我们把它推成一行

df['New']=df.date.append(pd.Series(pd.datetime.now())).diff().dropna().dt.days.values
df
Out[102]: 
        date  quantity   New
0 2015-01-01       100   365
1 2016-01-01       500     4
2 2016-01-05       100  1226

推荐阅读