如何通过遍历字典从 pandas 数据框中获取最相关的行

How to get the most related row from a pandas dataframe by iterating over a dictionary

假设我有这样的数据框:

name color shape taste
Apple Red Heart Sweet
Banana Yellow Long Sweet
Cherry Pink Circular Sour
Damson Magenta Circular Sour
Eggplant Violet Long Bitter

对于输入,我有一个元素的字典,类似于 new_fruit = {'name' : 'Tangerine' , 'color' : 'Orange' , 'shape' : 'Circular', 'taste' : 'Sour'}

我想要的是遍历此字典以从数据框中获取最相同的行(值)。在这种情况下,CircularSourDamsonCherry 行。

我试过代码

   for key, value in new_fruit.items():
    if key == 'name':
        continue
    if dataframe[key] == value: # Tried with isin too
        print(dataset[dataset[key] == value])
        break

我知道有问题,但想不通,你能帮我解决这个问题吗?

也许这对你有用:

mask = df == pd.Series(new_fruit)
items = df.loc[mask.any(axis=1), 'name'].tolist()

输出:

>>> items
['Cherry', 'Damson']