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

如何为Pandas DataFrame新增基于另一列判断的0/1值列

报错原因

  • 代码中的check[]是非法Python语法,不存在这种写法
  • Pandas中要判断Series的每个元素是否存在于指定列表,不能直接用==和列表做比较,需要调用内置的isin()方法

正确实现代码

import numpy as np
import pandas as pd
 
# 初始化列表数据
data = [['tom', 10], ['nick', 15], ['juli', 14]]
check = ['nick']
 
# 创建Pandas DataFrame
df = pd.DataFrame(data, columns = ['Name', 'Age'])
# 新增Checks列
df['Checks'] = np.where(df['Name'].isin(check), 1, 0)

# 打印DataFrame
print(df)
print(check)

运行输出结果

Name  Age  Checks
0   tom   10       0
1  nick   15       1
2  juli   14       0
['nick']

更简洁的无numpy替代写法

直接将布尔判断结果转整数即可,不需要引入numpy依赖:

df['Checks'] = df['Name'].isin(check).astype(int)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 11:21:03