如何判断DataFrame多列中是否含指定字符串并返回对应值?
解决方案
推荐方法:向量化操作(高效简洁)
用 pandas 的向量化方法直接处理整列数据,比逐行循环效率更高:
import pandas as pd df = pd.DataFrame({'A': ['Target acc', 'Target acc', 'N'], 'B': ['Target acc', 'Target acc', 'N'], 'C': ['Target acc', 'N', 'N']}) # 先判断每个单元格是否等于'Target acc',再检查每行是否存在至少一个匹配项,最后映射为指定结果 df['Result'] = df.eq('Target acc').any(axis=1).map({True: 'Yes', False: 'N'})
备选方法:逐行判断(逻辑直观)
如果需要更直白的逐行逻辑,也可以使用apply:
df['Result'] = df.apply(lambda row: 'Yes' if 'Target acc' in row.values else 'N', axis=1)
最终结果
运行代码后,DataFrame 会新增Result列,内容如下:
| 索引 | A | B | C | Result |
|---|---|---|---|---|
| 0 | Target acc | Target acc | Target acc | Yes |
| 1 | Target acc | Target acc | N | Yes |
| 2 | N | N | N | N |
内容的提问来源于stack exchange,提问作者toerag
相关产品推荐
相关产品推荐

