Pandas DataFrame判断列1内容是否包含在sample列生成布尔新列
实现方法
你可以直接用pandas的apply方法或者更高效的列表推导式实现,不需要手动写for循环,避免索引对应错误:
方法1:apply逐行判断(写法直观)
import pandas as pd # 示例DataFrame构造,你可以替换成自己的df df = pd.DataFrame({ "sample": ["My car is black", "My car is red", "My car is yellow", "My car is green"], "1": ["is black", "are red", "yellow", "black"] }) # 新增列2存储判断结果 df["2"] = df.apply(lambda row: row["1"] in row["sample"], axis=1)
方法2:列表推导式(大数据量下性能更高)
如果你的DataFrame行数很多,推荐用这种写法,运行速度比apply快:
df["2"] = [sub_str in main_str for sub_str, main_str in zip(df["1"], df["sample"])]
两种方法输出的结果都和你预期的一致。
内容的提问来源于stack exchange,提问作者HyunJu PARK
相关产品推荐
相关产品推荐

