如何在熊猫中匹配多个列并查找特定的列值?

时间:2019-07-16 10:12:53

标签: python pandas

我在Pandas中有以下数据框。它存储在df中,其工作原理与此类似:

 +--------+--------+-------+
 |  Col1  |  Col2  | Col3 |
 +--------+--------+-------+
 | Team 1 | High   | Pizza |
 | Team 2 | Medium | Sauce |
 | Team 2 | Low    | Crust |
 +--------+--------+-------+

我需要Col3的值,它们分别具有Col1=Team 2Col2=Medium

我尝试了以下代码:

result = df.loc[(df[Col1 ]=='Team 2) ' AND (df[Col2 ]=='Medium'), 'Col3'].values[0]
print(result)

预期结果:

'Sauce'

但是我得到了错误。请建议

1 个答案:

答案 0 :(得分:2)

&用于按位AND-如果始终匹配数据,则解决方案有效:

result = df.loc[(df['Col1'] =='Team2') & (df['Col2']=='Medium'), 'Col3'].values[0]

如果没有匹配数据,则用nextiter返回默认值的另一种解决方案:

s = df.loc[(df['Col1'] =='Team2') & (df['Col2']=='Medium'), 'Col3']
result = next(iter(s, 'no matching')