我有一个像这样的数据集:
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
答案 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)
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