dataFrame查找行要返回索引



我根据

有一个数据框
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

最新更新