首页 > 解决方案 > 使用另一列的值创建虚拟变量

问题描述

我知道 pandas 有一个 get_dummies() 函数。我想要做的不仅仅是给它一个 1/0 的值,而是使用另一列中的值。

我有以下示例:

Id A B
1 a 1
2 a 2
3 b 3
4 b 4
5 b 5
6 c 6

我想把它变成:

ID A_a A_b A_c
1 1 0 0
2 2 0 0
3 0 3 0
4 0 4 0
5 0 5 0
6 0 0 6

其中虚拟变量的值来自 B 列。ID 是标识的缩写。

标签: pythonpandas

解决方案


您可以get_dummies为“A”multiply列和 B 列:

pd.get_dummies(df['A'],prefix='A').mul(df['B'],axis=0)

    A_a  A_b  A_c
Id               
1     1    0    0
2     2    0    0
3     0    3    0
4     0    4    0
5     0    5    0
6     0    0    6

推荐阅读