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

如何在Pandas DataFrame中按索引为新增列'Is it valid?'赋值?

实现方法

下面是几种实用的实现方式,按需选择即可:

方法一:用isin结合numpy.where(推荐,效率最高)

这种方式简洁且适合处理大数据量,步骤如下:

先导入依赖库并构造数据:

import pandas as pd
import numpy as np

indexlist = [0,1,4]
df = pd.DataFrame({
    'Name': ['John', 'Peter', 'Paul', 'James', 'Jonatan', 'Maria'],
    'Country': ['BR', 'BR', 'BR', 'CZ', 'CZ', 'DK']
})

新增目标列:

df['Is it valid?'] = np.where(df.index.isin(indexlist), 'Yes', 'No')

方法二:用apply遍历索引(逻辑直观,适合小数据)

如果想更直白地写判断逻辑,可以用apply:

df['Is it valid?'] = df.index.to_series().apply(lambda x: 'Yes' if x in indexlist else 'No')

方法三:映射字典 + map

先构建索引到结果的映射,再批量赋值:

# 创建有效索引的映射
valid_map = {idx: 'Yes' for idx in indexlist}
# 用map匹配,不在映射里的用fillna补'No'
df['Is it valid?'] = df.index.map(valid_map).fillna('No')

执行任意一种方法后,都会得到你需要的结果:

Name    Country  Is it valid?
0   John    BR       Yes
1   Peter   BR       Yes
2   Paul    BR       No
3   James   CZ       No
4   Jonatan CZ       Yes
5   Maria   DK       No

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 06:05:18