根据行值执行计算

时间:2018-02-13 19:26:26

标签: python pandas

我想执行一个简单的计算(第二选择 - 第一选择> 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]

我已经搜索了很多,但我很难弄清楚如何使用行值来匹配计算中的列标题。任何帮助表示赞赏!

1 个答案:

答案 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