熊猫 - 如何删除日期时间列转换中的空格以避免错误?



我有一个数据帧,其中包含如下列:

Time             Offset
0  2019/07/15 11:47:24                NaN  
1  2019/07/15 11:47:47             0.0001   
2  2019/07/15 11:51:46             0.0004  
3  2019/07/15 11:51:51             0.0003   
4  2019/07/15 12:30:00                NaN

当我尝试在其上运行df['Time'] = pd.to_datetime(df['Time'],format='%Y/%m/%d %H:%M:%S')时,返回ValueError: time data 2019/07/15 nan doesn't match format specified.为什么存在该nan和/或如何摆脱它以将列转换为日期时间?

将参数errors=coerce将不匹配格式的值转换为NaT

df['Time'] = pd.to_datetime(df['Time'],format='%Y/%m/%d %H:%M:%S', errors='coerce')

如果可能,尾随空格使用Series.str.strip删除它们:

df['Time'] = pd.to_datetime(df['Time'].str.strip(),format='%Y/%m/%d %H:%M:%S', errors='coerce')
print (df)
Time  Offset
0 2019-07-15 11:47:24     NaN
1 2019-07-15 11:47:47  0.0001
2 2019-07-15 11:51:46  0.0004
3 2019-07-15 11:51:51  0.0003
4 2019-07-15 12:30:00     NaN

然后,如果需要,删除列中带有NaNs 的行Time

df = df.dropna(subset=['Time'])

最新更新