我根据
有一个数据框Alpha Bravo Charlie Final
10 20 30 30
15 25 35 25
我喜欢用标头创建一个新列,以便:
Alpha Bravo Charlie Final NewColumn
10 20 30 30 Charlie
15 25 35 25 Bravo
我尝试过,但没有给出正确的结果:
df['NewColumn'] = df.lookup(df.index, df.Final)
编辑:
我尝试了这两个答案,但它可以使用,但是由于我还有许多其他列,有什么方法可以将查找功能限制在Alpha Bravo和Charlie列中?(它正在向我返回其他列(
这是使用广播比较的100%numpy矢量化解决方案:
i = df.values
j = df.Final.values
df['NewColumn'] = df.columns[(i == j[:, None]).argmax(1)]
df
Alpha Bravo Charlie Final NewColumn
0 10 20 30 30 Charlie
1 15 25 35 25 Bravo
In [84]: df['NewColumn'] = df.drop('Final',1).eq(df['Final'], axis=0).idxmax(axis=1)
In [85]: df
Out[85]:
Alpha Bravo Charlie Final NewColumn
0 10 20 30 30 Charlie
1 15 25 35 25 Bravo