我创建了一个带有一列日期时间对象的数据框,对其进行了重新采样,但现在想将其变成列表列表-日期时间现在又是字符串。

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')

09-29 21:55