python - 使用 Styler 的 Pandas DatetimeIndex 格式

标签 python pandas datetime-format pandas-styles

当我有一个不使用 Styler 显示的数据框时,DatetimeIndex 按我想要的方式显示:

In [1]: df

enter image description here

但是,当我尝试为数据帧显示应用样式时,DatetimeIndex 会转换为我不喜欢的内容:

In [2]: df.style\
            .format({'volatility_5': '{:.1}'})\
            .bar(subset=['volatility_5'])

enter image description here

如何使 DatetimeIndex 再次显示 YYYY-MM-DD 格式?

最佳答案

一种可能的解决方案是将 DatetimeIndex 转换为 string:

level0 = df.index.get_level_values(0)
level1 = df.index.get_level_values(1).strftime('%Y-%m-%d')
mux = pd.MultiIndex.from_arrays([level0, level1], names=df.index.names)
df = df.set_index(mux) \
       .style\
       .format({'volatility_5': '{:.1}'})\
       .bar(subset=['volatility_5'])

示例:

rng = pd.date_range('2017-04-03', periods=5)
df = pd.DataFrame({'date': rng, 'volatility_5': np.arange(5) * 10.293, 'ticker':['TBGI'] * 5}).set_index(['ticker','date'])
level0 = df.index.get_level_values(0)
level1 = df.index.get_level_values(1).strftime('%Y-%m-%d')
mux = pd.MultiIndex.from_arrays([level0, level1], names=df.index.names)
df = df.set_index(mux) \
       .style\
       .format({'volatility_5': '{:.1}'})\
       .bar(subset=['volatility_5'])

pic

关于python - 使用 Styler 的 Pandas DatetimeIndex 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52025612/

相关文章:

php - 日期时间::格式和 strftime

python - 字典列表中的 Pandas DataFrame

python - 将数据框与其中一列中的字典数据连接起来

python - 如何有效地混淆 Python 代码?

python - 计算 Pandas 中的日期

pandas - 每行 Pandas 的多个饼图

vb.net - Ultragrid 列中的日期时间格式

c# - 匹配日期的正则表达式

python - 使用openCV-python记录x/y轴运动

python - 对给定行 pandas 的跨列求和分类特征标签