首页 > 解决方案 > 创建了多索引列的结构后,我无法将此模板适合数据框;这个怎么做?

问题描述

我对数据集有正确的多索引结构,但是我无法将此模板适合数据集。

导入数据集:

data = pd.read_excel('IRCC_M_TRStudy_0001_E.xls')

多索引列的代码:

years = (2015,2016,2017,2018,2019)
months = [
    ("Jan", "Feb", "Mar"),
    ("Apr", "May", "Jun"),
    ("Jul", "Aug", "Sep"),
    ("Oct", "Nov", "Dec"),
]
tuples = [(year, f"Q{i + 1}", month) for year in years for i in range(4) for month in months[i]]
multi_index = pd.MultiIndex.from_tuples(tuples)

我尝试将此模板适合数据集:

df = pd.DataFrame(data, index = data['Country of Citizenship'], columns = multi_index)

结果:

由“公民国家”的索引和由 3 个级别组成的多索引列组成 - 年(2015 - 2019),每年 4 个季度和每季度 3 个月(如预期)。但是,所有数据都丢失了 - 所有列和行都显示“nan”值。

预期结果应如下所示:

                                     2015
                  Q1                 Q2             Q3            Q4
           Jan  Feb  Mar      Apr  May Jun     Jul Aug Sep     Oct Nov Dec   
Country
USA        34   33   23      12   34   23      23  12  34       56   67   57
India      33   12   29      16   35   27      25  15  33       57   63   51

上表从左至右为 2016、2017、2018、2019 年重复。以上数据仅用于表示,我想将多索引模板拟合到由相似数据组成的数据集。另外,如何将索引“国家”定位在包含月份的行下方,如预期结果所示?

标签: pandasdataframemulti-index

解决方案


推荐阅读