熊猫:自某个日期以来经过的天数
Posted
技术标签:
【中文标题】熊猫:自某个日期以来经过的天数【英文标题】:Pandas: number of days elapsed since a certain date 【发布时间】:2014-11-22 04:54:12 【问题描述】:我有一个带有“日期”列的数据框,其中包含约 200 个元素,格式为 yyyy-mm-dd。
我想计算每个元素自 2001 年 11 月 25 日以来经过的天数,并将这些经过天数的列添加到数据框中。
我知道 to_datetime() 函数,但不知道如何实现。
【问题讨论】:
【参考方案1】:假设您的时间值在您的索引中,您可以这样做:
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)
【讨论】:
无需申请;您可以直接从列中减去时间戳以产生 timedelta64 dtype【参考方案2】:根据 Jeff 的评论,以下是对已接受答案的第二部分(也是最相关的部分)的更正:
df['time since'] = (df['datetime_column'] - basedate).dt.days
减法产生一系列类型Timedelta
,然后可以表示为天。
在某些情况下,您可能需要先通过 pd.to_datetime(...)
传递原始列。
【讨论】:
以上是关于熊猫:自某个日期以来经过的天数的主要内容,如果未能解决你的问题,请参考以下文章