pandas - 创建了多索引列的结构后,我无法将此模板适合数据框;这个怎么做?
问题描述
我对数据集有正确的多索引结构,但是我无法将此模板适合数据集。
导入数据集:
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 年重复。以上数据仅用于表示,我想将多索引模板拟合到由相似数据组成的数据集。另外,如何将索引“国家”定位在包含月份的行下方,如预期结果所示?
解决方案
推荐阅读
- python - 如何使用 Python 登录网站
- ios - How to find the iOS SDK version that an app is using?
- asp.net-core-2.0 - Azure cosmosdb mongo api error ion asp.net core
- c# - Shorten Code by accessing Dictionary with if
- bash - grep with PCRE on macOS
- python - How can I control the topology of neural network when using MLPClassifier?
- vim - Vim:匹配第 N 次出现的 PATTERN 并仅在匹配行上突出显示该模式
- java - 从类调用方法时出现 NullPointerExceptionError
- reactjs - Create-react-app-parcel-typescript with Jest
- python - 对重复出现的行进行分组并查找 Pandas 中单个日期时间列的时间差