gpt4 book ai didi

python - 自动识别 Pandas 中的日期时间

转载 作者:太空宇宙 更新时间:2023-11-04 05:01:42 26 4
gpt4 key购买 nike

我正在尝试减去两个时间序列以获得时间差。

train.csv 中的源数据看起来像

id,vendor_id,pickup_datetime,dropoff_datetime
id2875421,2,2016-03-14 17:24:55,2016-03-14 17:32:30
id2377394,1,2016-06-12 00:43:35,2016-06-12 00:54:38

我的代码是

train = pd.read_csv('./train.csv')
out = train.dropoff_datetime[0:5] - train.dropoff_datetime[0:5]

我得到一个以以下结尾的错误:

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

大概这是因为日期时间列被存储为对象或字符串而不是日期时间对象。在某些安装中,pandas 能够自动识别这样的日期列。如何设置?我的经验是 pandas 无法预测地识别不同格式的日期列。我究竟做错了什么?提前致谢。

我在 jupyter notebook 中使用 Python 3.6 和 pandas 0.20。

最佳答案

在未指定的情况下自动解析日期时间列在 pandas 中是不可能的。

您需要在 read_csv 中的参数 parse_dates 中定义要解析为日期时间的列:

train = pd.read_csv('./train.csv', parse_dates=[2,3])

或按列名:

train = pd.read_csv('./train.csv', parse_dates=['pickup_datetime','dropoff_datetime'])

print (train.dtypes)
id object
vendor_id int64
pickup_datetime datetime64[ns]
dropoff_datetime datetime64[ns]
dtype: object

out=train.dropoff_datetime[0:5]-train.pickup_datetime[0:5]
print (out)
0 00:07:35
1 00:11:03
dtype: timedelta64[ns]

对于新列:

train['difference']=train.dropoff_datetime-train.pickup_datetime
print (train)
id vendor_id pickup_datetime dropoff_datetime difference
0 id2875421 2 2016-03-14 17:24:55 2016-03-14 17:32:30 00:07:35
1 id2377394 1 2016-06-12 00:43:35 2016-06-12 00:54:38 00:11:03

关于python - 自动识别 Pandas 中的日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45560627/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com