基于分组后匹配字符串的数据过滤

2024-10-01 00:27:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我想按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

Tags: apiid类型mergedofferauctionvehicle车辆
1条回答
网友
1楼 · 发布于 2024-10-01 00:27:38

我相信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检查状态。你知道吗

相关问题 更多 >