当我有一个不使用 Styler
显示的数据框时,DatetimeIndex
按我想要的方式显示:
In [1]: df
但是,当我尝试为数据帧显示应用样式时,DatetimeIndex
会转换为我不喜欢的内容:
In [2]: df.style\
.format({'volatility_5': '{:.1}'})\
.bar(subset=['volatility_5'])
如何使 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'])
关于python - 使用 Styler 的 Pandas DatetimeIndex 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52025612/