根据python中的不同二进制列创建分类列

时间:2018-10-18 14:57:44

标签: python pandas dataframe

我有一个像这样的数据集:

df = pd.DataFrame(data= [[0,0,1],[1,0,0],[0,1,0]], columns = ['A','B','C'])

    A   B   C
0   0   0   1
1   1   0   0
2   0   1   0

我想创建一个新列,在每一行上都显示上一列的值为1的值:

    A   B   C value
0   0   0   1   C
1   1   0   0   A
2   0   1   0   B

2 个答案:

答案 0 :(得分:3)

使用dot

df['value'] = df.values.dot(df.columns)

输出:

   A  B  C value
0  0  0  1     C
1  1  0  0     A
2  0  1  0     B

答案 1 :(得分:2)

使用pd.DataFrame.idxmax

df['value'] = df.idxmax(1)

print(df)

   A  B  C value
0  0  0  1     C
1  1  0  0     A
2  0  1  0     B