【问题标题】:Collapsing rows to Columns Pandas将行折叠为列 Pandas
【发布时间】:2019-08-07 08:48:25
【问题描述】:

我正在尝试折叠 pandas 中多行的数据框。假设数据框看起来像这样

ID      Key  Value  Object
1001    K    1        4
1001    C    2        7
1001    D    3        9
2001    K    1        19
2001    C    2        10

现在我想将数据框折叠成以下内容:

ID   Value_K   Value_C   Value_D  Object_K  Object_C Object_D
1001   1         2         3         4         7        9
2001   1         2         NA        19        10       NA

谁能这么好心来帮助我。我尝试过使用 pivot()、pivot_table()、collapse() 和 melt(),但没有取得任何结果。

谢谢

【问题讨论】:

    标签: python pandas rows collapse


    【解决方案1】:

    您可以使用groupbyunstack

    df = pd.DataFrame({'ID': [1001,1001,1001,2001,2001], 'Key': ['K', 'C', 'D', 'K', 'C'], 'Value': [1,2,3,1,2],
                      'Object': [4,7,9,19,10]})
    df = df.groupby(['ID', 'Key']).sum().unstack()
    df.columns = df.columns.map('{0[0]}-{0[1]}'.format)
    df = df.reset_index()
    print(df)
    
         ID  Value-C  Value-D  Value-K  Object-C  Object-D  Object-K
    0  1001      2.0      3.0      1.0       7.0       9.0       4.0
    1  2001      2.0      NaN      1.0      10.0       NaN      19.0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-15
      • 1970-01-01
      • 1970-01-01
      • 2020-02-22
      • 2020-03-20
      • 1970-01-01
      • 2022-01-26
      • 2018-11-29
      相关资源
      最近更新 更多