首页 > 解决方案 > 试图将大型堆叠的 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

有谁能够帮我?

先感谢您

标签: pythonpandascsvpanel-data

解决方案


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

推荐阅读