在 Pandas 中使用 multiIndexing 时显示所有索引值

spl*_*ter 4 python multi-index python-3.x pandas

我希望在查看我的 DataFrame 时,我将看到 multiIndex 的所有值,包括当后续行对其中一个级别具有相同的索引时。下面是一个例子:

arrays = [['20', '50', '20', '20'],['N/A', 'N/A', '10', '30']]
tuples = list(zip(*arrays))
index = pd.MultiIndex.from_tuples(tuples, names=['Jim', 'Betty'])
pd.DataFrame([np.random.rand(1)]*4,index=index)
Run Code Online (Sandbox Code Playgroud)

输出是:

                                0
Jim         Betty           
20          N/A          0.954973
50          N/A          0.954973
20          10           0.954973
            30           0.954973
Run Code Online (Sandbox Code Playgroud)

我想在西南角也有一个 20。也就是说,我希望我的 DataFrame 是:

                                0
Jim         Betty           
20          N/A          0.954973
50          N/A          0.954973
20          10           0.954973
20          30           0.954973
Run Code Online (Sandbox Code Playgroud)

Pandas 有能力做到这一点吗?

jez*_*ael 8

您需要设置display.multi_sparseFalse

#if need temporary use option
with pd.option_context('display.multi_sparse', False):
    print (df)

                  0
Jim Betty          
20  N/A    0.201643
50  N/A    0.201643
20  10     0.201643
20  30     0.201643
Run Code Online (Sandbox Code Playgroud)

如果整个笔记本都需要此显示选项,则可以按如下方式一劳永逸地设置该选项:

# if permanent use
import pandas as pd
pd.options.display.multi_sparse = False
Run Code Online (Sandbox Code Playgroud)

文件

display.multi_sparse
True
“Sparsify” MultiIndex 显示(不显示组内外层重复元素)