在所有列中无法使用该列的值填充缺失值。

3
我有一个数据框,如下所示。
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]})

我的目标是使用相应的信用历史值填充所有行和列中的缺失值。

我尝试了下面的方法,但它不起作用。

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

我希望我的输出结果如下所示。基本上,无论哪一行缺失,它都应该从credit_history列中选择相应的值。

enter image description here

1个回答

3
使用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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接