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

Pandas处理列值:将含逗号多值转为7、缺失值转为6

解决Pandas DataFrame多值条目替换问题

问题分析

你需要将specialty列中带逗号的多值条目替换为7,将字符串"missing"替换为6,之前尝试直接给str.contains()结果赋值导致语法错误,这是因为不能直接对函数调用结果赋值,需要通过定位DataFrame的行和列来修改。

解决方案

下面两种方法都可以实现需求:

方法1:使用np.where条件替换

先导入依赖库,然后通过条件判断批量替换:

import pandas as pd
import numpy as np

# 假设你的DataFrame为df
# 替换带逗号的条目为7
df['specialty'] = np.where(df['specialty'].str.contains(',', na=False), 7, df['specialty'])
# 替换"missing"为6
df['specialty'] = df['specialty'].replace({'missing': 6})
  • str.contains(',', na=False):检查每个元素是否包含逗号,na=False避免空值引发异常
  • np.where:满足条件(含逗号)时替换为7,否则保留原数值

方法2:使用df.loc定位修改

通过布尔索引定位目标行,直接赋值修改:

import pandas as pd

# 假设你的DataFrame为df
# 定位含逗号的行,替换为7
df.loc[df['specialty'].str.contains(','), 'specialty'] = 7
# 替换"missing"为6
df['specialty'] = df['specialty'].replace({'missing': 6})
  • df.loc[布尔条件, 列名]:是Pandas中定位行和列并赋值的标准写法,避免了之前的语法错误

验证结果

执行上述代码后,specialty列会变为你期望的输出:

specialty
0 1
1 7
2 2
3 6
4 6
5 1
6 3
7 7
8 4
9 1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 14:22:05