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

Posted

技术标签:

【中文标题】在 Pandas 中使用 multiIndexing 时显示所有索引值【英文标题】:Showing all index values when using multiIndexing in Pandas 【发布时间】:2016-11-07 18:11:33 【问题描述】:

我希望在查看我的 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)

输出是:

                                0
Jim         Betty           
20          N/A          0.954973
50          N/A          0.954973
20          10           0.954973
            30           0.954973

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

                                0
Jim         Betty           
20          N/A          0.954973
50          N/A          0.954973
20          10           0.954973
20          30           0.954973

Pandas 有能力做到这一点吗?

【问题讨论】:

【参考方案1】:

您需要将display.multi_sparse 设置为False

#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

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

# if permanent use
import pandas as pd
pd.options.display.multi_sparse = False

Documentation:

display.multi_sparse “稀疏化” MultiIndex 显示(不在组内的外层显示重复元素)

【讨论】:

以上是关于在 Pandas 中使用 multiIndexing 时显示所有索引值的主要内容,如果未能解决你的问题,请参考以下文章

在 Django 中使用 Pandas 转 JSON

使用 Pandas 在 Excel 中写入百分比

在 Cloud Datalab 中使用 Pandas 删除重复项(来自 bigquery)回溯错误

使用 Pandas 在 Python 中处理大型 SQL 查询?

如何在 pandas 系列列表中使用 OneHotEncoder?

在 IPython 中使用 Pandas 绘制股票图表