【问题标题】:Trying to reshape a large stacked csv file into a panel data format [duplicate]试图将大型堆叠的 csv 文件重塑为面板数据格式 [重复]
【发布时间】:2019-07-25 18:30:38
【问题描述】:

我在 python 中使用 pandas 加载了一些数据。我也有如下数据框结构

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

谁能帮帮我?

提前谢谢你

【问题讨论】:

    标签: python pandas csv panel-data


    【解决方案1】:
    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
    

    【讨论】:

      猜你喜欢
      • 2020-10-01
      • 2012-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多