比较pandas中的两行

时间:2017-03-06 13:17:57

标签: python pandas

我有什么方法可以比较熊猫中的两行?

我会在sql中做这样的事情。

Select * from table t1, table t2 where t1.price - t2.price > 10 and t1.type = 'abc' and t2.type = 'def' 

我能想到的最佳方法是在此基础上减去pandas Data-Frame中的行:

abc = df[df['type'] == 'abc'] 
def = df[df['type'] == 'def']

我被困在如何去做这个?

这样的东西
price     type 

10        abc
10        def 
30        abc 
15        def 

它应该返回行

10        def 
30        abc 
15        def  

1 个答案:

答案 0 :(得分:0)

Aceminer,我仍然不完全清楚你在比较中想要什么,但我设置了类似的东西。这里需要注意的是,这段代码将一行与下面的行进行比较,这样你的最后一行就不会显示,因为没有什么要比较它。

df = df[(df['type'] != df['type'].shift(-1)) & (abs(df['price'] - df['price'].shift(-1)) > 10)]

过滤器:

   price type
1     10  def
2     30  abc

结果:

{{1}}