在一行数据框中将字符串转换为日期时间

我有一个 CSV 文件作为我计算的输入。该文件包含一个表,该表在我的脚本中被读取为数据框。两列是日期时间对象。当我将文件读取到数据帧时,我将这些值从默认字符串类型转换为数据时间,应用带有 UTC 参数的 to_datetime 函数。代码如下:


import pandas as pd


df_in = pd.read_csv('./Out/in.csv', index_col = 0, usecols = [0, 1, 2, 3, 4], header = 0)


df_in.iloc[:,2:4] = df_in.iloc[:,2:4].apply(pd.to_datetime, utc = True)


print(df_in)

对以下输入 CSV 非常有效:


,Rig ID,Rig Name,Start Time,End Time

60,5,D004,2020-05-08 02:45:14.664341,2020-05-10 08:12:29.719839

70,5,D004,2020-05-14 07:59:09.280761,2020-05-15 02:11:52.358921

CSV 文件减少到 1 行的那一刻,例如:


,Rig ID,Rig Name,Start Time,End Time

60,5,D004,2020-05-08 02:45:14.664341,2020-05-10 08:12:29.719839

我收到错误


TypeError: data type not understood.

据我所知,这与单行数据帧上的切片分配有关


df_in.iloc[:,2:4] =

但我正在努力寻找其原因和“智能”解决方法。


元芳怎么了
浏览 145回答 1
1回答

HUX布斯

我发现,对于旧版本的熊猫,当数据框中存在日期字段(特别是 datetime64 变体)时,可能会发生这种情况。所以,与其iloc尝试这个……df_in[['Start Time','End Time']] = df_in[['Start Time','End Time']].apply(pd.to_datetime, utc = True)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python