要在指定条件时获取熊猫数据框的两列之间的差异,我目前正在使用以下代码。例如,要获取A
所在行的列B
和A > 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
?
答案 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