2017-03-06 200 views
-2

有什麼方法可以比較兩行熊貓嗎?大熊貓兩行比較

我會在sql中這樣做。

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

,我堅持至於如何去這樣做:

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

我能想到的最好的辦法是在此基礎上減去大熊貓數據幀行?

喜歡的東西

price  type 

10  abc 
10  def 
30  abc 
15  def 

應該返回行

10  def 
30  abc 
15  def 
+0

你能加樣日期與期望的輸出?謝謝。 – jezrael

+0

我有點困惑't1'和't2'是不同的表?如果是,爲什麼不在樣本中? – jezrael

+0

我應該提到t1和t2是同一張表 – aceminer

回答

0

Aceminer,我還沒有完全清楚你在找什麼的比較,但我設置了類似的東西。這裏需要注意的一點是,這段代碼將一行與以下內容進行比較,以便最後一行不顯示,因爲沒有任何可以比較的內容。

df = pd.DataFrame({'price':[10,10,30,15], 'type':['abc','def','abc','def']}) 

    price type 
0  10 abc 
1  10 def 
2  30 abc 
3  15 def 

篩選:

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

結果:

price type 
1  10 def 
2  30 abc 
+0

考慮單行,我想知道該數據框中的哪一行的價格大於10,而不是相同類型的行df中的其他行。對df中的所有行重複此操作。 – aceminer

+0

來自現有數據框外部的「單行」? – pshep123

+0

號在同一幀 – aceminer