如何阻止 to_csv 更改日期格式?
How to stop to_csv from changing date format?
我正在尝试将我的数据框按原样写入 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')
根据你写的内容,这听起来很奇怪。您是否可以创建数据框的副本并且不将日期格式应用于其列?
否则,为了安全起见,我会尝试在使用您喜欢的格式编写 df
之前创建一个字符串列。
下面的代码将带有日期列的数据框保存为 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 可能需要更改列格式,如下所示
我正在尝试将我的数据框按原样写入 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')
根据你写的内容,这听起来很奇怪。您是否可以创建数据框的副本并且不将日期格式应用于其列?
否则,为了安全起见,我会尝试在使用您喜欢的格式编写 df
之前创建一个字符串列。
下面的代码将带有日期列的数据框保存为 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 可能需要更改列格式,如下所示