首页 > 解决方案 > 将数据帧转换为 csv 时出错

问题描述

对于自动化,我需要将一个 excel 文件转换为 csv,并在某些列中进行一些修改。在其中一列中,我需要将时间戳更改为 %Y-%m-%d %H:%M:%S'。目前我可以做所有事情,并且更改会反映在数据帧上,除了当我将其转换为 csv 时,时间戳格式会更改,

这是我现在一直在尝试的代码

df=pd.read_excel(file,headers=0,index=False)
print(df.head())
df['Reported On '] = pd.to_datetime(df['Reported On '])
df['Reported On ']= df['Reported On '].apply(lambda x: dt.datetime.strftime(x, '%Y-%m-%d %H:%M:%S'))
df.to_csv(csv_name,index=False)

CSV 中的 Reported On 列给出的值是:8/10/2017 10:50

如果我将数据框转换为 excel,它会给我所需的格式。

是 csv 的问题吗?

标签: pythonpandascsv

解决方案


即使我无法重现您的错误,请注意您可以在编写文件时在 csv 文件中定义日期的字符串表示,而不是更改您的数据:

df=pd.read_excel(file,headers=0,index=False)
print(df.head())
df['Reported On '] = pd.to_datetime(df['Reported On '])
df.to_csv(csv_name, date_format='%Y-%m-%d %H:%M:%S', index=False)

无论如何,这对 IMO 来说更好,因为它使您的数据帧独立于可计算状态的某些输出格式要求。


推荐阅读