Python pandas数据框“日期”索引xlsx和csv中的不同格式

Posted

技术标签:

【中文标题】Python pandas数据框“日期”索引xlsx和csv中的不同格式【英文标题】:Python pandas dataframe "Date" Index different format in xlsx and csv 【发布时间】:2016-10-09 09:13:46 【问题描述】:

我有一个带有多个选项卡的 xlsx 文件,每个选项卡都有一个 Date 列,格式为 MM/DD/YYYY

将每个标签读入pandas数据框,对每个标签应用一些操作,然后将数据框写回两种格式:xlsx和csv

在 xlsx 文件中,Date 列(索引)变为附有时间的格式:1/1/2013 12:00:00 AM,而 csv 文件中的Date 列保持不变:MM/DD/YYYY

如何确保 xlsx 文件中的 Date 列保持相同的格式 MM/DD/YYYY

【问题讨论】:

Excel 读取系统设置,因此会因机器而异。 【参考方案1】:

您可以将日期转换为字符串。如果日期在索引中,您可以这样做:

df.set_index(df.index.map(lambda x: x.strftime('%m/%d/%Y'))).to_excel()

【讨论】:

【参考方案2】:

您看到的是默认 pandas Excel 日期时间格式的日期时间。但是,您可以轻松地将其设置为任何您想要的:

# Set the default datetime and/or date formats.
writer = pd.ExcelWriter("pandas_datetime.xlsx",
                        engine='xlsxwriter',
                        date_format='mm/dd/yyy',
                        datetime_format='mm/dd/yyyy')

# Convert the dataframe to an XlsxWriter Excel object.
df.to_excel(writer, sheet_name='Sheet1')

查看 XlsxWriter 文档中的完整示例:示例:Pandas Excel output with date times.

【讨论】:

以上是关于Python pandas数据框“日期”索引xlsx和csv中的不同格式的主要内容,如果未能解决你的问题,请参考以下文章

Python Pandas 数据框:对于一年中的每个月,如果月份不存在,则将当月最后一天的日期添加到索引中,或者删除重复项

Python Pandas 索引排序/分组/日期时间

如何使用另一个日期时间索引获取具有日期时间索引的 Pandas 数据框中的行?

当有两个索引、pandas、python 时针对日期时间进行绘图

获取数据框 pandas 中日期时间的索引

Pandas Python - 计数和分组日期时间索引