根据布尔值将多列合并为大熊猫中的一列

通托

如何在熊猫中将多列合并为一列?

我有这张桌子:

ID   | A   | B   | C | D
1      1     1     0   3
2      1     0     1   2
3      0     0     1   8

我想要这张桌子:

ID   | X | D
1      A   3
1      B   3
2      A   2
2      C   2
3      C   8

我想根据它们的值将A,B,C列合并到X列中。如果一个ID具有多个合并列(A / B / C)的true(1)值,则将有该ID的新行副本。

洪迪杜普

您可以melt用来重塑DataFrame,然后仅保留相关的列和行query以选择行并drop删除现在已过时的列,如下所示:

(df.melt(id_vars=['ID', 'D'], var_name='X')
.query('value == 1')
.drop(columns=['value']))
#       ID  D  X
#0   1  3  A
#1   2  2  A
#3   1  3  B
#7   2  2  C
#8   3  8  C

融化后的DataFrame如下所示:

#   ID  D  X  value
#0   1  3  A      1
#1   2  2  A      1
#2   3  8  A      0
#3   1  3  B      1
#4   2  2  B      0
#5   3  8  B      0
#6   1  3  C      0
#7   2  2  C      1
#8   3  8  C      1

通过使用IDD作为id_vars,那些被复制的所有其他变量的每一个不同的值(ABC)。这些列的值现在在该value列中。然后,将行保留在value == 1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何根据Google表格中的布尔值将行合并为一列?

通过根据列值熊猫数据框将一列置于另一列之下,将多列合并为一列

大熊猫:根据布尔值列表/字典替换数据框列

如何根据另一列中的值将NaN值替换为另一列的均值?大熊猫

将多列合并为一列熊猫

合并后组的列的多个值由到在python大熊猫一列

如何将多个日期列合并为一个大熊猫?

大熊猫:将多列映射到一列

根据一列值将多行合并为单行

大熊猫:将一列设为水平轴

将列中的值合并为一列

大熊猫分配列值取决于df中的另一列

大熊猫:将一列中的列表转换成单独的列

大熊猫:根据一列中的相似值,使用多个数据框中的值填充数据框中的空列

合并大熊猫中的列?

大熊猫在另一列中获得最高频率值

大熊猫:从另一列修改数据框中的值

大熊猫创建一列并从字典中为其分配值

大熊猫:如何找到一列中每个类别的最大n值

根据熊猫中的列值将多行合并为一行

大熊猫合并两个数据框,其中一个包含另一列的值

要将多列合并为一列并计算唯一值的重复,并为熊猫数据框中的每个计数维护一个单独的列

python pandas-根据另一列的内容将列中的值更改为布尔值

将多列熊猫数据框合并为一列

大熊猫将分组依据和行合并为列

R根据单元格是否为空将多列合并为一列

大熊猫-如何根据日期组织数据框并为列分配新值

将3列合并为一列熊猫

将熊猫数据列合并为一列