You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在DataFrame中使用Python in运算符判断剧情片并生成布尔列

解决方案

错误原因分析

  1. isin(["Dramas"]) 全为False的原因
    isin方法会检查listed_in字段的完整值是否匹配给定列表中的内容。如果你的listed_in字段是类似 "Dramas, Thrillers" 这种包含多个类型的字符串,而非单独的 "Dramas",自然无法匹配,结果全为False。

  2. apply(lambda x: x['listed_in'] in x['Dramas']) 报KeyError的原因
    这里你错误地尝试访问DataFrame中名为Dramas的列,但你的数据里根本不存在这个列。正确逻辑应该是判断字符串"Dramas"是否存在于listed_in字段的内容中,而非反过来。

正确实现(使用in运算符)

如果listed_in是字符串类型(比如用逗号分隔多个电影类型),直接用apply结合in运算符即可:

import pandas as pd

# 针对字符串类型的listed_in字段
df["drama_movie"] = df['listed_in'].apply(lambda x: "Dramas" in x)

如果需要处理空值(避免NaN引发错误),可以补充空值判断:

df["drama_movie"] = df['listed_in'].apply(lambda x: "Dramas" in x if pd.notna(x) else False)

如果你的listed_in字段是列表类型(每个条目存储一个类型列表),用in的写法如下:

# 针对列表类型的listed_in字段
df["drama_movie"] = df['listed_in'].apply(lambda x: "Dramas" in x)

内容的提问来源于stack exchange,提问作者new_python_guy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 10:45:34