我创建了一个带有一列日期时间对象的数据框,对其进行了重新采样,但现在想将其变成列表列表-日期时间现在又是字符串。
for i in range(1, len(dataf.index)):
dataf["Time Stamp"][i] = datetime.strftime(dataf["Time Stamp"][i], '%m-%d-%Y %H:%M:%S')
print(dataf["Time Stamp"][i])
我不断收到错误
(请注意,打印部分仅供我检查输出)
ValueError: Error parsing datetime string "09-11-2017 00:02:00" at position 8
但是据我所知,日期格式完全相同。我什至尝试在'%m-%d-%Y%H:%M:%S'中使用不同的大小写,但无济于事。
任何想法?
最佳答案
你应该能够
dataf['Time Stamp'].dt.strftime('%m-%d-%Y %H:%M:%S')
所以要重写列
dataf['Time Stamp'] = dataf['Time Stamp'].dt.strftime('%m-%d-%Y %H:%M:%S')
如果您有错误,则可能是因为该列实际上不是日期时间。
dataf['Time Stamp'] = pd.to_datetime(
dataf['Time Stamp']
).dt.strftime('%m-%d-%Y %H:%M:%S')
如果您有不可解析的数据
dataf['Time Stamp'] = pd.to_datetime(
dataf['Time Stamp'], errors='coerce'
).dt.strftime('%m-%d-%Y %H:%M:%S')