2017-08-22 69 views
0

我想按IdVehicle進行分組,然後只返回拍賣只有「合併搶救」和「合併搶救API」值的車輛。擁有除這兩種類型以外的拍賣的車輛將被過濾掉。我怎樣才能做到這一點?根據大熊貓分組後的匹配字符串過濾數據

數據:

Id  Vehicle   Auction  Offer 
10 1984 Porsche 944  Copart    100 
10 1984 Porsche 944  Merged Salvage  200 
10 1984 Porsche 944  IAA    140 
11 2000 Chevrolet G3500 Copart    80 
11 2000 Chevrolet G3500 Merged Salvage  100 
11 2000 Chevrolet G3500 Merged Salvage API 120 
11 2000 Chevrolet G3500 SVP    130 
12 2001 Honda CRV  Merged Salvage  50 
12 2001 Honda CRV  Merged Salvage API 100 

預期輸出:

Id  Vehicle   Auction  Offer 
12 2001 Honda CRV  Merged Salvage  50 
12 2001 Honda CRV  Merged Salvage API 100 
+0

你可以請你出示解決這個問題的嘗試嗎? –

回答

1

我相信df.groupby操作,其次是dfGroupBy.transform應該這樣做:對於狀態使用

In [1097]: status = ['Merged Salvage', 'Merged Salvage API'] 

In [1098]: df[df.groupby(['Id', 'Vehicle']).Auction\ 
       .transform(lambda x: x.isin(status).min())] 
Out[1098]: 
    Id   Vehicle    Auction Offer 
7 12 2001 Honda CRV  Merged Salvage  50 
8 12 2001 Honda CRV Merged Salvage API 100 

謂詞檢查pd.Series.isin