gpt4 book ai didi

python - 使用 Pandas DataFrame Styler 格式化日期时间索引,只显示时间部分

转载 作者:太空宇宙 更新时间:2023-11-04 15:54:54 25 4
gpt4 key购买 nike

我正在使用 Pandas DataFrames 的样式属性来创建用于电子邮件发送的 HTML 表格。

我遇到的问题是,当我希望它显示为日期时,我有一个显示为日期时间戳的日期时间索引。我对时间部分不感兴趣。在解释器中,DataFrame 确实打印正确(只显示日期部分)。但是当我在使用表格的样式属性进行样式化后呈现时,它会生成 HTML 并显示时间部分。我研究过使用 style.format() 但我无法访问索引列。我会重置索引以使日期时间列成为普通列......但我的标题列是 MultIndex。如果我展平并且不使用索引,则该表看起来很奇怪。

不幸的是,我在 .style 文档中发现了这个:

Limitations

  • DataFrame only (use Series.to_frame().style)
  • The index and columns must be unique
  • No large repr, and performance isn’t great; this is intended for summary DataFrames
  • You can only style the values, not the index or columns
  • You can only apply styles, you can’t insert new HTMLentities Some of these will be addressed in the future.

https://pandas.pydata.org/pandas-docs/stable/style.html#Limitations

我发帖是想看看是否有人对我如何解决这个问题有任何想法。谢谢!

显示问题的示例表: example_table_link

生成表格的代码:

account_day_df = merged[['Day', 'Metric1', 'Metric2', 'Metric3', 'Metric4', 'Campaign type']]
account_day_df = account_day_df.groupby(['Day', 'Campaign type']).sum()
account_day_df.loc[:, 'Metric5'] = account_day_df['Metric1'] / account_day_df['Metric4']
account_day_df = account_day_df.unstack('Campaign type')

html += (
account_day_df.style
.background_gradient(cmap=cm, subset=['Metric5'])
.set_table_attributes('border="1" class="dataframe table table-hover table-bordered"')
.render(i)
)

最佳答案

作为 Styler enhancements 的一部分在 Pandas 1.4.0 中 format_index现在可用于直接设置索引样式:

例如:

df.style.format_index(lambda s: s.strftime("%Y-%m-%d"))

styled index

当然,这可以与其他样式链接:

(
df.style.format_index(lambda s: s.strftime("%Y-%m-%d"))
.format(precision=2)
.background_gradient()
)

Styled DataFrame with multiple styles. Formatted index, precision, and background gradient


设置:

import pandas as pd
from numpy.random import Generator, MT19937

rng = Generator(MT19937(10))
df = pd.DataFrame(
rng.random(size=(10, 2)),
index=pd.date_range('2022-01-01', periods=10, freq='D')
)

df.style

Styler object with no formatting

关于python - 使用 Pandas DataFrame Styler 格式化日期时间索引,只显示时间部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46588792/

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