【问题标题】:Split Panda Columns into Multiple Rows将 Panda 列拆分为多行
【发布时间】:2021-08-16 00:47:47
【问题描述】:

我有多个列,我想合并为一个列。另一个困难是动物(例如狗)可以有多个代码(因此字符串 concat 不起作用)。

我尝试过旋转、堆叠、取消堆叠,但多个 values 列让我难以理解。

原始数据框:

Animal Code_X Code_Y Code_Z Value1 Value2 Value3
Cat 111 $3 $3 $3
Dog 222 333 $4 $4 $4
Mouse 444 $5 $5 $5
Fox 555 666 $6 $6 $6

所需的数据框:

Animal Code Value1 Value2 Value3
Cat 111 $3 $3 $3
Dog 222 $4 $4 $4
Dog 333 $4 $4 $4
Mouse 444 $5 $5 $5
Fox 555 $6 $6 $6
Fox 666 $6 $6 $6

有没有办法一举做到这一点?我的最后一个结果是创建一个带有所需标头的新数据框并使用df.append()

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    试试:

    df.melt(['Animal', 'Value1', 'Value2', 'Value3'], value_name='Code')\
      .dropna(subset=['Code'])\
      .drop('variable', axis=1)
    

    输出:

      Animal Value1 Value2 Value3   Code
    0    Cat     $3     $3     $3  111.0
    3    Fox     $6     $6     $6  555.0
    5    Dog     $4     $4     $4  222.0
    6  Mouse     $5     $5     $5  444.0
    7    Fox     $6     $6     $6  666.0
    9    Dog     $4     $4     $4  333.0
    

    【讨论】:

    • 所以它融化了!谢谢
    • @Ryan 是的,这是一种方法。不客气。快乐编码。保持安全并保持健康。
    猜你喜欢
    • 2017-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多