我有什么方法可以比较熊猫中的两行?
我会在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
答案 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}}