Pandas计算数据框行之间的日期差异

3
下面是翻译的结果:

以下是csv文件中的两列。我想要检查每一个日期间隔,

'2013-11-01' - '2013-10-08',

'2013-12-02' - '2013-11-01'等。

输入图像说明文字

之后,

df = pd.read_csv(f, sep='\t')
df_date = df["Date"]

我尝试过:
print (df["Date"].shift(-1) - df["Date"]).astype('timedelta64[d]')

并且

print df['Date'].shift() - df['Date']

两者均返回:

TypeError: unsupported operand type(s) for -: 'str' and 'str'

出了什么问题,我该如何纠正它?谢谢。


1
你尝试过在计算差值之前将列转换为日期时间格式吗? - Carsten
1个回答

2
问题在于列 Date 填充了日期时间的字符串表示形式,因此首先需要进行转换 - 例如通过 parse_dates 参数或 to_datetime 进行转换,然后调用 Series.diff 函数:
df = pd.read_csv(f, sep='\t', parse_dates=['Date'])

print (df["Date"].diff(-1))

另一种解决方案:
df = pd.read_csv(f, sep='\t')
df["Date"] = pd.to_datetime(df["Date"])
print (df["Date"].diff(-1))

1
希望你一切都好。感谢你提供如此迅速的解决方案和分享知识! - Mark K

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接