如何匹配多个列并在pandas中找到特定的列值?

2024-06-01 00:23:43 发布

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

我有下面的熊猫数据帧。它存储在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'

但我犯了个错误。请建议


Tags: 数据代码dfresultteamcol2col3col1
1条回答
网友
1楼 · 发布于 2024-06-01 00:23:43

使用&进行按位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')

相关问题 更多 >