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

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(...) 传递原始列。

【讨论】:

以上是关于熊猫:自某个日期以来经过的天数的主要内容,如果未能解决你的问题,请参考以下文章

自上次活动以来经过的代码天数

Google表格 - 自上次日期以来的天数一系列单元格

是否有一个 R 函数可以计算自数据框中最近日期以来的天数?

如何计算自上次事件==1 以来的天数?

将 Avro 中存储为整数(自 1970 年 1 月 1 日以来的天数)的“日期”转换为雪花“日期”类型

ansi sql如何选择自表中最早时间戳以来的天数