如果满足条件,则两列之差

时间:2018-11-16 10:43:52

标签: pandas dataframe

要在指定条件时获取熊猫数据框的两列之间的差异,我目前正在使用以下代码。例如,要获取A所在行的列BA > B之间的区别:

import pandas as pd
df = pd.DataFrame({'A' : [4,5,6,7], 'B' : [1,2,10,11]}); df
   A   B
0  4   1
1  5   2
2  6  10
3  7  11

df2 = df.loc[df.A > df.B]
df2.A - df2.B
0    3
1    3

是否有一种方法可以“通过管道传输”而不是在上面创建临时数据帧df2

2 个答案:

答案 0 :(得分:1)

一种使用eval且在处理大量数据时具有high performance的方法:

df.loc[df.A > df.B].eval('A - B')

0    3
1    3
dtype: int64

答案 1 :(得分:1)

只需连接两个命令,然后选择要减去的列:

In [2337]: df.loc[df.A > df.B]['A'] - df.loc[df.A > df.B]['B']
Out[2337]: 
0    3
1    3
dtype: int64