gpt4 book ai didi

Pandas 选择匹配多列

转载 作者:行者123 更新时间:2023-12-05 02:37:50 25 4
gpt4 key购买 nike

我有这样的数据:

category = ['Car','Car','Car','Car','Truck','Truck','Truck']
name = ['Camry','Camry','Camry','Camry','Tacoma','Tundra','Tundra']
year = ['2007','2007','2008','2009','2010','2010','2011']
vals = [0.1,0.5,0.2,0.9,0.8,0.4,0.9]
df = pd.DataFrame({'Category': category,
'Name': name,
'Year': year,
'Vals': vals})
<表类="s-表"><头>索引类别姓名年瓦尔斯<正文>0汽车凯美瑞20070.11汽车凯美瑞20070.52汽车凯美瑞20080.23汽车凯美瑞20090.94卡车塔科马20100.85卡车苔原20100.46卡车苔原20110.9

然后我有一组(类别、名称、年份)的组合,我想为其过滤数据框。它们可以采用任何格式,但在这里它们位于数据框中。

combinations_i_want = pd.DataFrame()
# (Car, Camry, 2007)
combinations_i_want = combinations_i_want.append({'Category':'Car', 'Name':'Camry','Year':'2007'},ignore_index=True) # 2 matches in df
# (Truck, Tundra, 2010)
combinations_i_want = combinations_i_want.append({'Category':'Truck', 'Name':'Tundra','Year':'2010'},ignore_index=True) # 1 match in df

我想提取 df 中与这两个组合完全匹配的行。这些将是第 0、1 和 5 行。结果表将如下所示:

<表类="s-表"><头>索引类别姓名年瓦尔斯<正文>0汽车凯美瑞20070.11汽车凯美瑞20070.55卡车苔原20100.4

注意:我不需要旧索引,它们只是为了帮助可视化。

我该怎么做?

最佳答案

您可以简单地在您想要的列上右联接。

result = df.merge(combinations_i_want, how='right', on=['Category', 'Name', 'Year'])

关于Pandas 选择匹配多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69889411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com