如何基于多条件优先级判断为DataFrame添加新列?
解决方案:按优先级填充新列NewColD
1. 构造示例数据
先还原你提供的DataFrame:
import pandas as pd import numpy as np df = pd.DataFrame({ 'ColA': ['A', 'B', 'C'], 'ColB': [np.nan, 'F', 'D'], 'ColC': [np.nan, np.nan, 'G'] }, index=[1, 2, 3])
2. 按规则生成NewColD
利用fillna()的链式调用实现优先级填充逻辑(ColC > ColB > ColA):
df['NewColD'] = df['ColC'].fillna(df['ColB']).fillna(df['ColA'])
3. 执行结果
运行后得到的DataFrame如下:
ColA ColB ColC NewColD 1 A NaN NaN A 2 B F NaN F 3 C D G G
逻辑说明
df['ColC'].fillna(df['ColB']):优先保留ColC的非空值,ColC为空的位置用ColB的值填充- 再调用
.fillna(df['ColA']):若经过上一步后仍有空值(即ColC和ColB均为空),则用ColA的值填充
内容的提问来源于stack exchange,提问作者bg_11
相关产品推荐
相关产品推荐

