python - Python-Pandas 将列转换为行
问题描述
我的 excel 数据库有一些按国家/地区多年的信息。问题是每年都有不同的列标题。例如:
Country Indicator 1950 1951 1952
Australia x 10 27 20
Australia y 7 11 8
Australia z 40 32 37
我想将每个指标转换为列标题并按年制作一列。像这样:
Country year x y z
Australia 1950 10 7 40
Australia 1951 27 11 32
Australia 1952 20 8 37
而且我不知道列中有多少个国家。年 = 1950 至 2019
解决方案
我们可以使用stack
和进行格式化unstack
df.set_index(['Country','Indicator']).stack().unstack(level=1).reset_index()
Indicator Country level_1 x y z
0 Australia 1950 10 7 40
1 Australia 1951 27 11 32
2 Australia 1952 20 8 37
推荐阅读
- javascript - 使用 JavaScript 插入元素时无法接收表单输入数据
- javascript - 如何在`day.js`中比较两次?
- javascript - Node.js 12.x AWS lambda 不使用 firebase-admin 实时数据库返回
- swift - 如何使用 Metal 参数缓冲区?
- python - Pandas Dataframe:如何比较一行中两列中的值是否等于后续行相同列中的值?
- c++ - 如何在 C++ 中移动二维数组的序列?
- node.js - 如何使用 Webpack 运行 Nodejs 捆绑应用程序
- java - 根据操作系统分辨率和缩放比例在 Java 中重新缩放字体大小
- java - 数据未插入表中
- firebase - 使用 preact-cli 的 Cloud Firestore 构建错误