如何停止to_csv更改日期格式?

时间:2018-07-16 14:27:49

标签: python-3.x pandas datetime export-to-csv

我正在尝试将自己的数据框写入csv。数据框的列中很少有日期时间。

我已使用df.column = pd.to_date(df.column)将日期从dd/mm/yyyy转换为yyyy/mm/dd,该方法已成功运行。

但是,当我将数据帧写入csv时,日期列将恢复为dd / mm / yyyy格式。

这是我写csv df.to_csv('~/Desktop/df.csv',date_format='%Y-%m-%d')

的方式

如何防止日期恢复为旧格式?

pandas version 0.23
python 3.6 - anaconda spyder

编辑:

这就是我阅读csv的方式:

df = pd.read_csv('~/Downloads/sample.csv.gz',parse_dates=True, delimiter='\t', compression = 'gzip')

2 个答案:

答案 0 :(得分:2)

下面的代码将带有日期列的数据框保存为csv。 (Jupyter Notebook 5.0.0, Python 3.6.6

导入库

import pandas as pd
import numpy as np
import datetime as datetime

创建示例数据框

x = ['01/12/2018','01/12/2018','01/12/2018','01/12/2018']
y = ['A','B','C','D']
df = pd.DataFrame({'date':x, 'var':y})
df['date'] = pd.to_datetime(df['date'])
df

注意:此处,pd.to_datetime()格式将其更改为yyyy-mm-dd

enter image description here

转换为所需格式

df['date'] = df['date'].dt.strftime('%Y/%m/%d')
df

enter image description here

将数据框另存为csv

df.to_csv('df.csv', sep=',',index=False)

在文本编辑器中打开文件

enter image description here

在MS Excel中打开文件可能需要更改列格式,如下所示

enter image description here

答案 1 :(得分:1)

根据您所写的内容,这听起来很奇怪。您是否有可能创建数据框的副本,并且不将日期格式应用于其列?

否则,为了更加安全起见,我会尝试在按照自己喜欢的格式编写df之前创建一个字符串列。