例如,我们有不同年份城市和城市人口的数据。
| 城市|二○ ○ ○年|二○ ○五年|二○一○年|二〇一五年|
| - ------|- ------|- ------|- ------|- ------|
| 城市_1|十个|十一|十二|十三|
| 城市_2|十五|十四|十三|十二|
| 城市_3|二十个|三十|二十五|三十五|
我需要以这种形式获取DataFrame:
| 城市|年份|人口|
| - ------|- ------|- ------|
| 城市_1|二○ ○ ○年|十个|
| 城市_1|二○ ○五年|十一|
| 城市_1|二○一○年|十二|
| 城市_1|二〇一五年|十三|
| 城市_2|二○ ○ ○年|十五|
| 城市_2|二○ ○五年|十四|
| 城市_2|二○一○年|十三|
| 城市_2|二〇一五年|十二|
| 城市_3|二○ ○ ○年|二十个|
| 城市_3|二○ ○五年|三十|
| 城市_3|二○一○年|二十五|
| 城市_3|二〇一五年|三十五|
如何使用Python来实现这一点?
3条答案
按热度按时间uz75evzq1#
只需使用
pandas.melt()
,然后(按照您的意愿)按城市对结果进行排序:此函数可用于将DataFrame转换为一种格式,其中一个或多个列是标识符变量(id_vars),而所有其他列(被视为测量变量(value_vars))"取消透视"到行轴,只留下两个非标识符列,"variable"和"value"。
4c8rllxm2#
我认为你正在寻找融化功能,它基本上是一个反向透视,将你的数据转换成一个宽长格式。
如果您想了解更多信息,可以阅读此处的文档。
https://pandas.pydata.org/docs/reference/api/pandas.melt.html
kxe2p93d3#
输出: