python - 无法用所有列的列值填充缺失值

标签 python pandas dataframe series fillna

我有一个如下所示的数据框

df = pd.DataFrame({'Credit_History':['Yes','ABC','DEF', 'JKL'],
                   'Loan_Status':['T1','T2',np.nan,np.nan],
                   'subject_status':['DUMMA','CHUMMA',np.nan,np.nan],
                   'test_status':['test',np.nan,np.nan,np.nan]})

我的目标是用所有行和列中相应的 credit_history 值填充缺失值

下面的方法我都试过了,还是不行

cols = ['Loan_Status','subject_status','test_status']
df[cols] = df[cols].fillna(df['Credit_History'])

我希望我的输出如下所示。基本上,无论哪一行缺失,它都应该从 credit_history

中选择相应的值

enter image description here

最佳答案

使用DataFrame.apply ,所以用了Series.fillna :

cols = ['Loan_Status','subject_status','test_status']
df[cols] = df[cols].apply(lambda x: x.fillna(df['Credit_History']))

print (df)
  Credit_History Loan_Status subject_status test_status
0            Yes          T1          DUMMA        test
1            ABC          T2         CHUMMA         ABC
2            DEF         DEF            DEF         DEF
3            JKL         JKL            JKL         JKL

或转置:

cols = ['Loan_Status','subject_status','test_status']
df[cols] = df[cols].T.fillna(df['Credit_History']).T

print (df)
  Credit_History Loan_Status subject_status test_status
0            Yes          T1          DUMMA        test
1            ABC          T2         CHUMMA         ABC
2            DEF         DEF            DEF         DEF
3            JKL         JKL            JKL         JKL

关于python - 无法用所有列的列值填充缺失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69358724/

相关文章:

Python imaplib 下载 Gmail Text 而不下载完整附件

python - 将前 n 个非 NaN 单元格保留在 pandas DataFrame 的每一行中

python - 数据框 - 找到匹配项后停止搜索和导出数据

python - 如何将 xls 中的所有字段作为字符串导入 Pandas 数据框?

python - Pandas :仅将数据框中的数字转换为数字,保留其他所有内容

python - 计算数据框中两列中作为相反对存在的唯一值的数量?

python - 使用 rasterized=True 时,Matplotlib 图(pcolormesh 和 colorbar)相对于它们的轴移动

python - 获取列表中给定项目的计数(不使用 numpy)

python - 如果我对分类数据进行 LabelEncode,在创建 LightGBM 数据集时是否还需要使用 categorical_feature?

python - 将数据帧的元素拆分为子列