Python 熊猫:从某个日期起经过的天数

Python 熊猫:从某个日期起经过的天数,python,date,pandas,dataframe,Python,Date,Pandas,Dataframe,我有一个带有“日期”列的数据框,其中包含约200个元素,格式为yyyy-mm-dd 我想计算自2001-11-25以来每个元素经过的天数,并将这些天数的列添加到数据帧中 我知道to_datetime()函数,但不知道如何实现它。假设时间值在索引中,您可以执行以下操作: import pandas x = pandas.DatetimeIndex(start='2014-01-01', end='2014-01-06', freq='30T') df = pandas.DataFrame(ind

我有一个带有“日期”列的数据框,其中包含约200个元素,格式为yyyy-mm-dd

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


我知道to_datetime()函数,但不知道如何实现它。

假设时间值在索引中,您可以执行以下操作:

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)

根据杰夫的评论,以下是对公认答案第二部分(也是最相关的部分)的更正:

df['time since'] = (df['datetime_column'] - basedate).dt.days
减法生成一系列类型,然后可以表示为天


在某些情况下,您可能需要首先通过原始列。

无需应用;可以直接从列中减去时间戳以生成timedelta64数据类型