我正在尝试执行以下操作以将我的数据20220620
转换为2022-06-20 00:00:00
。唯一的问题是,我相信我专栏中的空白会导致我出现此错误:time data '' does not match format '%Y%m%d' (match)
这是我正在尝试的内容,
d7['date'] = pd.to_datetime(d7['date'], format='%Y%m%d').dt.strftime('%Y-%m-%d %H:%M:%S.%f', errors='coerce')
试图绕过我行中的空白。
我知道这些线程上有很多线程,但是我没有找到一个寻址time data ''
的线程。
样本数据:
Date
0 20191101
1
2 20191104
预期:
2019-11-01 00:00:00
任何帮助将不胜感激。
首先,您应该考虑空白值以及您要如何处理它们。然后从errors='coerce'
中删除.dt.strftime
,因为它不是该方法的有效参数。您想将errors='coerce'
添加到pd.to_datetime
部分:
d7['date'] = pd.to_datetime(d7['date'], format='%Y%m%d', errors='coerce')\
.dt.strftime('%Y-%m-%d %H:%M:%S.%f')
样本数据:
x = pd.DataFrame(data=['20191101', '20191104', '20191201', '', '20191205'], columns=['Date'])
x
Date
0 20191101
1 20191104
2 20191201
3
4 20191205
使用pd.to_datetime将字符串转换为时间,然后使用dt.strftime方法格式化输出:
pd.to_datetime(x['Date']).dt.strftime('%Y-%m-%d %H:%M:%S.%f')
0 2019-11-01 00:00:00.000000
1 2019-11-04 00:00:00.000000
2 2019-12-01 00:00:00.000000
3 NaT
4 2019-12-05 00:00:00.000000
Name: Date, dtype: object