给定类似于
的数据框Vote A Vote B
1 4
3 2
1 5
我想添加一个名为Winner
的新列,用于比较两列Vote A
和Vote B
之间的值,并指定获胜者。
Winner
B
A
B
我怎么能在熊猫中做到这一点?
答案 0 :(得分:2)
您可以使用
def winner(row):
if row['Vote A'] > row['Vote B']:
return 'A'
elif row['Vote A'] < row['Vote B']:
return 'B'
else:
return ''
df['Winner'] = df[['Vote A','Vote B']].apply(winner, axis=1)
哪个收益
Vote A Vote B Winner
1 4 B
3 2 A
1 5 B
答案 1 :(得分:2)
使用idxmax
和.str
In [274]: df['Winner'] = df[['Vote A','Vote B']].idxmax(axis=1).str[-1]
In [275]: df
Out[275]:
Vote A Vote B Winner
0 1 4 B
1 3 2 A
2 1 5 B
答案 2 :(得分:1)
df.eq(df.max(1),0).dot(df.columns).str[-1]
Out[223]:
0 B
1 A
2 B
dtype: object
分配后
df.assign(New=df.eq(df.max(1),0).dot(df.columns).str[-1])
Out[224]:
VoteA VoteB New
0 1 4 B
1 3 2 A
2 1 5 B