gpt4 book ai didi

python - 使用 pandas.to_excel 时格式化 timedelta64

转载 作者:太空狗 更新时间:2023-10-30 02:54:17 26 4
gpt4 key购买 nike

我正在使用 ExcelWriter 写入 excel 文件:

writer = pd.ExcelWriter(fn,datetime_format=' d  hh:mm:ss')
df.to_excel(writer,sheet_name='FOO')

写入操作成功,打开相应的excel文件我看到日期时间格式很好,符合要求。但是,dtype timedelta64[ns] 的数据框的另一列会自动转换为数值,所以在 Python 中我看到了

0 days 00:23:33.499998

在 excel 中:

 0.016359954

这很可能是相同的持续时间转换为天数。有什么方法可以使用 pd.ExcelWriter 控制 timedelta 格式吗?

最佳答案

Excel 没有时间增量或等效数据类型,因此您有几个不完美的选择。

要在 Excel 中保持它们的“日期时间特性”,您可以转换为日期时间,然后以仅显示时间部分的格式在 Excel 中显示它们。

df = pd.DataFrame({'td': [pd.Timedelta(1, 'h'), pd.Timedelta(1.5, 'h')]})
df['td_datetime']
df['td_datetime'] = df['td'] + pd.Timestamp(0)

writer = pd.ExcelWriter('tmp.xlsx', datetime_format='hh:mm:ss')
df.to_excel(writer)
# tmp.xlsx
# td td_datetime
# 0.041667 01:00:00
# 0.0625 01:30:00

或者,您可以在序列化之前格式化为字符串:

df['td_str'] = df['td'].astype(str)

df
Out[24]:
td td_str
0 01:00:00 0 days 01:00:00.000000000
1 01:30:00 0 days 01:30:00.000000000

关于python - 使用 pandas.to_excel 时格式化 timedelta64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46523178/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com