pandas 数据框样式格式

pandas dataframe style formatting

在这个例子中

import numpy as np
import pandas as pd
from itertools import product

df = pd.DataFrame({'Value':np.arange(10001,10007)}, 
    index=list(product(*[['A','B'],['a','b','c']])))
df.index = pd.MultiIndex.from_tuples(df.index, names=['Caps','Lower'])

df; df.style.format("{:,}")

当 df 输出到 Jupyter notebook 时,Caps 列中的值与顶部对齐。但是,当 df.style.format("{:,}") 在 Jupyter notebook 中输出时,Caps 列中的值居中。有没有办法强制这些值位于顶部? (即它们应该与 a 在同一行,而不是与 b 在同一行)。

默认情况下,pandas 将索引标签显示在列标签下方的一行中。出于显示目的,您可以通过重置索引使它们在同一水平线上。

df.reset_index()

   Caps Lower Value
0   A   a   10001
1   A   b   10002
2   A   c   10003
3   B   a   10004
4   B   b   10005
5   B   c   10006

您可以将 set_table_stylesselector 一起使用:

df.style.format("{:,}").set_table_styles([{'selector':'th',
                                           'props':[('vertical-align','top')]}])

输出: