【问题标题】:Split a bottom level column tuple into another level将底层列元组拆分为另一层
【发布时间】:2023-02-07 06:04:16
【问题描述】:

我当前的数据框有两个级别。我希望通过拆分元组来添加第三个,元组是列的名称。参见示例:

原始DF:

Category
(A,Cat)    (B,Dog)    (B,Bird)   (B,Frog)   (HH,Lion)   (HH,Tiger)

  48          28         585        4          233         44
  11          434         23        854         32         10

所需的 DF:“类别”是顶级。字母 (A,B,HH) 是第二层。然后动物是数据框的底层

Category
   A           B          B          B          HH         HH 
  Cat         Dog        Bird      Frog       Lion      Tiger

  48          28         585        4          233         44
  11          434         23        854         32         10

我没有太多在数据框中使用多索引列的经验。任何建议表示赞赏。

【问题讨论】:

    标签: python dataframe


    【解决方案1】:

    首先从你拥有的开始(如果你自己提供这段代码会很好):

    import pandas as pd
    
    df = pd.DataFrame(
        data=[[48, 28, 585, 4, 233, 44], [11, 434, 23, 854, 32, 10]],
        columns=[("A", "Cat"), ("B", "Dog"), ("B", "Bird"), ("B", "Frog"), ("HH", "Lion"), ("HH", "Tiger")],
    )
    
    df
    
       (A, Cat)  (B, Dog)  (B, Bird)  (B, Frog)  (HH, Lion)  (HH, Tiger)
    0        48        28        585          4         233           44
    1        11       434         23        854          32           1
    

    现在将元组分解为多级列,然后添加另一个级别:

    # Create multi-index from existing column tuples
    # https://pandas.pydata.org/docs/reference/api/pandas.MultiIndex.from_tuples.html
    df.columns = pd.MultiIndex.from_tuples(df.columns)
    
    # Add another level for the 'Category'
    # From https://stackoverflow.com/a/42094658/1256347
    pd.concat([df], keys=['Category'], axis=1)
    
      Category                          
             A    B             HH      
           Cat  Dog Bird Frog Lion Tiger
    0       48   28  585    4  233    44
    1       11  434   23  854   32    10
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多