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

Python如何为DataFrame新增列标识值是否存在于指定Series

错误原因

你写的代码存在3个问题:

  • 列名属于字符串,需要用引号包裹,否则Python会把series_yn、ID识别为未定义的变量,而非DataFrame的列名
  • 赋值操作需要使用单等号=,你写的==是比较运算符,仅用于判断左右两侧值是否相等,无法完成赋值操作
  • 赋值逻辑顺序颠倒,应该把右侧isin方法的计算结果赋值给左侧的新列

正确实现代码

如果你的ID序列变量名为id_series,待处理的DataFrame变量名为df,一行代码即可实现需求:

df['series_yn'] = df['ID'].isin(id_series).astype(int)

isin()方法会返回布尔值序列:ID在序列中为True,不在为False,直接用astype(int)就能把布尔值转换为对应的1和0,完全匹配你的需求。

完整可运行示例

你可以直接运行下面的代码验证效果:

import pandas as pd

# 构造示例ID Series
id_series = pd.Series(['A1', 'A2', 'A3'])
# 构造示例DataFrame
df = pd.DataFrame({
    'ID': ['A1', 'A3', 'A4'],
    'age': [10, 20, 20]
})
# 新增series_yn列
df['series_yn'] = df['ID'].isin(id_series).astype(int)
print(df)

运行输出结果:

ID  age  series_yn
0  A1   10          1
1  A3   20          1
2  A4   20          0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 22:27:05