Pandas如何将DataFrame Code列NaN值替换为Names列拼接_DEFAULT结果
pandas处理DataFrame指定列空值替换方案
需求说明
需要处理DataFrame中Code列存在的两类空值:
- NaN空值
- 空白字符串(含空串、全空格内容)
将上述空值统一替换为*对应行Names列取值拼接_DEFAULT*的结果,非空值保留原有内容不变。
实现代码
如果未导入依赖库,先执行导入:
import pandas as pd import numpy as np
第一步:把Code列里所有形式的空白值统一转换为pandas可识别的NaN,避免漏判空白字符串:
# 正则匹配所有空串、全空格内容,替换为np.nan df['Code'] = df['Code'].replace(r'^\s*$', np.nan, regex=True)
第二步:对Code列的NaN值做填充,填充值取同行Names列内容拼接_DEFAULT:
df['Code'] = df['Code'].fillna(df['Names'] + '_DEFAULT')
效果示例
原始测试数据:
| Names | Code |
|---|---|
| Apple | A001 |
| Banana | NaN |
| Orange | |
| Pear | P003 |
处理后输出:
| Names | Code |
|---|---|
| Apple | A001 |
| Banana | Banana_DEFAULT |
| Orange | Orange_DEFAULT |
| Pear | P003 |
内容的提问来源于stack exchange,提问作者Ninad Nakhawa
相关产品推荐
相关产品推荐

