python - 试图将大型堆叠的 csv 文件重塑为面板数据格式
问题描述
我在 python 中用熊猫加载了一些数据。我也有以下数据框结构
Country Year Subject Value
‘USA’ 1991 ‘GDP’ NUM1
‘USA’ 1992 ‘GDP’ NUM2
‘USA’ 1993 ‘GDP’ NUM3
‘USA’ 1991 ‘INV’ NUM4
‘USA’ 1992 ‘INV’ NUM5
‘USA’ 1993 ‘INV’ NUM6
我想把这种格式变成这种更标准的面板数据结构
Country Year GDP INV
‘USA’ 1991 NUM1 NUM4
‘USA’ 1992 NUM2 NUM5
‘USA’ 1993 NUM3 NUM6
有谁能够帮我?
先感谢您
解决方案
df:
Country Year Subject Value
0 USA 1991 GDP 10
1 USA 1992 GDP 20
2 USA 1993 GDP 30
3 USA 1991 INV 40
4 USA 1992 INV 50
5 USA 1993 INV 60
你需要pivot_table。
pv = df.pivot_table(index=['Country', 'Year'], columns=['Subject'], values=['Value']).reset_index()
pv.columns = [col[0] if col[1]=='' else col[1] for col in pv.columns.values ]
输出:
Country Year GDP INV
0 USA 1991 10 40
1 USA 1992 20 50
2 USA 1993 30 60
推荐阅读
- r - 无法在 rstudio 云中加载 tidyverse
- c# - 反序列化 int 数组总是 nulll
- typescript - TypeScript:删除索引签名而不隐式出现“任何”类型错误
- php - htaccess 文件不存在的问题
- python - 如何在python中找到一组不同列元素的最低总和?
- php - How to debug a HTML/PHP form not submitting properly
- python-3.x - 退出 GPU 进程导致某些驱动程序无法恢复
- mysql - 无法启动 MySQL 社区服务器 -> InnoDB 强制恢复错误 -> InnoDB mmamp 错误
- laravel - 如何在 Laravel Eloquent 中编写嵌套的单个查询
- python - 在Django中的if语句之后没有显示HTML内容