如何在Pandas DataFrame中减去时间

时间:2018-10-28 20:26:55

标签: python pandas datetime

如何从checkout_time中减去purchase_time来查找在该网站上花费的总时间?请在此处查看数据框:Table

我使用了以下代码,但它给了我一个错误。时间格式为1/26/2017 14:44:

df['time_to_purchase'] = df.purchase_time - df.checkout_time

但是我收到以下错误:

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

1 个答案:

答案 0 :(得分:0)

您需要将列的dtype转换为Pandas可以识别的用于执行日期时间算术的内容:

fmt = '%m/%d/%Y %H:%M'  # or: infer_datetime_format=True

df['purchase_time'] = pd.to_datetime(df['purchase_time'],
                                     format=fmt,
                                     errors='coerce')
df['checkout_time'] = pd.to_datetime(df['checkout_time'],
                                     format=fmt,
                                     errors='coerce')

pd.to_datetime中使用errors='coerce'将迫使无法识别/无法解析的日期成为NaT(“不是时间”)。