首页 > 解决方案 > Python - 取列中第一个日期的时间差

问题描述

给定日期列,我想创建另一个列差异来计算距第一个日期的天数。

date                    diff
2011-01-01 00:00:10      0
2011-01-01 00:00:11      0.000011 days
2011-02-01 00:00:11      30.000011 days 
2013-02-01 00:00:11      395.000011 days
2014-02-01 00:00:11      760.000011 days

日期在日期时间中。到目前为止我尝试了什么:

df = df.sort_values(['date'], ascending=True)
df.set_index('date', inplace = True)
first = df.index[0]
df['diff'] = (first - df.index.shift()).fillna(0)

标签: pythonpandasdatetimedataframe

解决方案


你可以试试

df['diff'] = df.date - df.date.min()

df
                 date               diff
0 2011-01-01 00:00:10    0 days 00:00:00
1 2011-01-01 00:00:11    0 days 00:00:01
2 2011-02-01 00:00:11   31 days 00:00:01
3 2013-02-01 00:00:11  762 days 00:00:01
4 2014-02-01 00:00:11 1127 days 00:00:01

推荐阅读