【发布时间】:2015-11-06 17:11:38
【问题描述】:
我有一个 pandas 数据框,其中有一列以 yyyy-mm-dd 格式表示日期。这是从最旧到最新排序的。我想在它旁边添加一列,其中包含该行日期与前一个日期之间的时间差。
在 excel 中,这将是这样的:
【问题讨论】:
-
你到底在哪里挣扎?
我有一个 pandas 数据框,其中有一列以 yyyy-mm-dd 格式表示日期。这是从最旧到最新排序的。我想在它旁边添加一列,其中包含该行日期与前一个日期之间的时间差。
在 excel 中,这将是这样的:
【问题讨论】:
假设您的“日期”列存储为 datetime64 类型,您可以这样做
df['difference'] = df.date.diff()
首先检查df.dtypes以确保日期类型正确。
【讨论】:
解决了
data['lowered'] = data['date'].shift(+1)
data['difference'] = data['date'] - data['lowered']
【讨论】:
diff() 慢很多,因为您不必要地创建临时变量。