我想执行一个简单的计算(第二选择 - 第一选择> 5)并返回计算为True的行,但计算中的列需要根据行值进行更改。
Places A B C D E 1st Choice 2nd Choice
Place 1 62 47 43 100 100 A B
Place 2 64 60 77 100 A C
Place 3 55 50 0 A B
Place 4 62 54 100 50 A B
Place 5 86 50 100 100 A C
第一行是假Bc Col B - Col A = -15,但第二行是True bc Col C - Col A = 13.
我认为它可能是这样的:
df[[df[df.column = df['2nd Choice']]-df[df.column = df['1st Choice']]]>5]
我已经搜索了很多,但我很难弄清楚如何使用行值来匹配计算中的列标题。任何帮助表示赞赏!
答案 0 :(得分:3)
使用pd.DataFrame.lookup
和布尔切片
c1 = df.lookup(df.index, df['1st Choice'])
c2 = df.lookup(df.index, df['2nd Choice'])
df[c2 - c1 > 5]
Places A B C D E 1st Choice 2nd Choice
1 Place 2 64 60 77 0 100 A C
4 Place 5 86 50 100 0 100 A C