我在Pandas中有以下数据框。它存储在df中,其工作原理与此类似:
+--------+--------+-------+
| Col1 | Col2 | Col3 |
+--------+--------+-------+
| Team 1 | High | Pizza |
| Team 2 | Medium | Sauce |
| Team 2 | Low | Crust |
+--------+--------+-------+
我需要Col3
的值,它们分别具有Col1=Team 2
和Col2=Medium
。
我尝试了以下代码:
result = df.loc[(df[Col1 ]=='Team 2) ' AND (df[Col2 ]=='Medium'), 'Col3'].values[0]
print(result)
预期结果:
'Sauce'
但是我得到了错误。请建议
答案 0 :(得分:2)
将&
用于按位AND
-如果始终匹配数据,则解决方案有效:
result = df.loc[(df['Col1'] =='Team2') & (df['Col2']=='Medium'), 'Col3'].values[0]
如果没有匹配数据,则用next
和iter
返回默认值的另一种解决方案:
s = df.loc[(df['Col1'] =='Team2') & (df['Col2']=='Medium'), 'Col3']
result = next(iter(s, 'no matching')