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

时间:2020-06-10 03:25:30

标签: python pandas dataframe

我有一个CSV文件,可以作为我的计算的输入。该文件包含一个表,该表在我的脚本中作为数据帧读取。两列是日期时间对象。当我将文件读取到数据帧时,我会将这些值从默认字符串类型转换为datatime,并使用带有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] =

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

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我发现,在较早版本的熊猫中,当数据字段中存在日期字段(特别是datetime64变体)时,可能会发生这种情况。 因此,代替iloc试试这个...

df_in[['Start Time','End Time']] = df_in[['Start Time','End Time']].apply(pd.to_datetime, utc = True)