如何在Pandas同一行中用Column1值匹配Column2字符串?
问题修复与解决方案
原代码的问题
- 语法错误:
isindf是拼写错误,正确方法是isin,但即使修正拼写,逻辑仍不符合需求 - 逻辑错误:
df["Column2"].isin(df["Column1"])是检查Column2的每个值是否存在于整个Column1的集合中,并非你需要的同一行内Column1字符串匹配Column2内容
正确实现方式
要实现同一行内Column1的字符串是否包含在Column2中,同时处理Column2为NaN的情况,代码如下:
import pandas as pd import numpy as np # 构建示例数据 df = pd.DataFrame({ 'Column1': ['Jimmy', 'James', 'John'], 'Column2': ['His name is Jimmy', 'His name is Joe', np.nan] }) # 生成Y/N格式的匹配结果 df['Match'] = np.where( # 先排除Column2为空的行,再逐行检查字符串包含关系 df['Column2'].notna() & df.apply(lambda row: row['Column1'] in row['Column2'], axis=1), 'Y', 'N' ) # 如果需要布尔值(True/False),直接使用这行 # df['Match'] = df['Column2'].notna() & df.apply(lambda row: row['Column1'] in row['Column2'], axis=1)
运行结果
| Column1 | Column2 | Match |
|---|---|---|
| Jimmy | His name is Jimmy | Y |
| James | His name is Joe | N |
| John | NaN | N |
内容的提问来源于stack exchange,提问作者covershaker
相关产品推荐
相关产品推荐

