熊猫:自某个日期以来经过的天数

时间:2014-09-27 06:44:37

标签: python date pandas dataframe

我有一个带有' date'的数据框。具有约200个元素的列,格式为yyyy-mm-dd。

我想计算每个元素自2001-11-25以来经过的天数,并将这些经过天数的列添加到数据框中。

我知道to_datetime()函数,但无法弄清楚如何实现这一点。

2 个答案:

答案 0 :(得分:4)

假设您的时间值在索引中,您可以这样做:

import pandas

x = pandas.DatetimeIndex(start='2014-01-01', end='2014-01-06', freq='30T')
df = pandas.DataFrame(index=x, columns=['time since'])

basedate = pandas.Timestamp('2011-11-25')
df['time since'] = df.apply(lambda x: (x.name.to_datetime() - basedate).days, axis=1)

如果他们在列中,请执行:

df['time since'] = df['datetime_column'].apply(lambda x: (x.name.to_datetime() - basedate).days)

答案 1 :(得分:0)

根据Jeff的评论,这是对已接受答案的第二个(也是最相关的)部分的更正:

df['time since'] = (df['datetime_column'] - basedate).dt.days

减法产生一系列类型Timedelta,然后可以将其表示为天。

在某些情况下,您可能需要先将原始列通过pd.to_datetime(...)