我正在尝试将自己的数据框写入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')
答案 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
转换为所需格式
df['date'] = df['date'].dt.strftime('%Y/%m/%d')
df
将数据框另存为csv
df.to_csv('df.csv', sep=',',index=False)
在文本编辑器中打开文件
在MS Excel中打开文件可能需要更改列格式,如下所示
答案 1 :(得分:1)
根据您所写的内容,这听起来很奇怪。您是否有可能创建数据框的副本,并且不将日期格式应用于其列?
否则,为了更加安全起见,我会尝试在按照自己喜欢的格式编写df
之前创建一个字符串列。