【问题标题】:Python Replace Two Headers with OnePython用一个替换两个标题
【发布时间】:2021-01-22 23:10:19
【问题描述】:

我目前有一个如下所示的数据框:

     | Unnamed:1|Unnamed:2 |Unnamed:3 |
     | Column 1 | Column 2 | Column 3 | 
0    | Data     | Data     | Data     |
1    | Data     | Data     | Data     |
2    | Data     | Data     | Data     |
3    | Data     | Data     | Data     |

我一直在使用以下代码失败,因为它将标题替换为索引 [0] 行:

new_header = df.iloc[0] 
df = df[1:] 
df.columns = new_header

理想情况下,新数据框应如下所示:

     | Column 1 | Column 2 | Column 3 | 
0    | Data     | Data     | Data     |
1    | Data     | Data     | Data     |
2    | Data     | Data     | Data     |
3    | Data     | Data     | Data     |

【问题讨论】:

    标签: python pandas header row


    【解决方案1】:

    您正在处理多索引列。如果您只想保留第二个标题行,这就足够了:df.columns = df.columns.get_level_values(1)

    【讨论】:

      【解决方案2】:

      您的数据似乎被读取为具有pd.MultiIndex 列。这意味着从功能上讲,您的每个列标签实际上都是一个值元组:

      [("Unnamed:1", "Column 1"), ("Unnamed:2", "Column 2"), ...]
      

      要解决此问题,您可以使用df.droplevel(0, axis=1) 方法删除列的第 0 级。这将删除每个上述tuples 的第一个元素。我们指定 axis=1 是因为我们想要删除第 0 级的列索引,而不是行索引。

      要尝试的片段:

      df = df.droplevel(0, axis=1)
      

      可重现的 sn-p:

      columns = pd.MultiIndex.from_arrays(
          [["Unnamed:1", "Unnamed:2", "Unnamed:3"], 
           ["Column 1", "Column 2", "Column 3"]]
      )
      data = [[1,2,3],[4,5,6],[7,8,9]]
      df = pd.DataFrame(data, columns=columns)
      
      print(df)
        Unnamed:1 Unnamed:2 Unnamed:3
         Column 1  Column 2  Column 3
      0         1         2         3
      1         4         5         6
      2         7         8         9
      

      现在使用.droplevel(...)

      df = df.droplevel(0, axis=1)
      print(df)
      
         Column 1  Column 2  Column 3
      0         1         2         3
      1         4         5         6
      2         7         8         9
      

      【讨论】:

        猜你喜欢
        • 2013-11-27
        • 2021-02-12
        • 1970-01-01
        • 2016-10-27
        • 2011-08-02
        • 2022-10-15
        • 2014-06-13
        • 2019-08-05
        • 2015-06-24
        相关资源
        最近更新 更多