Last answered:

16 Mar 2021

Posted on:

06 Apr 2020


Credit Risk Modeling in Python Section PD Model 6.2

Hello, when importing the variables to build the PD Model, it returns me the following error pointing the problem to the line ·127 'mths_since_last_record:>86']]"

KeyError: 'Passing list-likes to .loc or [] with any missing labels is no longer supported, see'


5 answers ( 0 marked as helpful)
Posted on:

23 Apr 2020

HI Edu, Did you use the code provided in the lecture?  If you made some changes, could you please share them with us? Best,
The 365 Team
Posted on:

22 Jun 2020

I had the same problem, even when I copied and pasted the lecture code. It turns out that using .loc[ ] with one or more missing labels is now deprecated (starting in version  The documentation ( suggests using .reindex() instead. This worked for me: inputs_train_with_ref_cat = loan_data_inputs_train.reindex([ list of column names ], axis=1)
Posted on:

24 Jun 2020

Hello all, I replaced .loc with .reindex and I get after inputs_train = inputs_train_with_ref_cat.drop(ref_categories, axis = 1)
inputs_train.head() Many NaN:
grade:A                              0
grade:B                              0
grade:C                              0
grade:D                              0
grade:E                              0
... mths_since_last_record:3-20 373028 mths_since_last_record:21-31 373028 mths_since_last_record:32-80 373028 mths_since_last_record:81-86 373028 mths_since_last_record:>=86 373028 Length: 104, dtype: int64

It seems, that it doesn't work really with .reindex.

If I open the data loan_data_inputs_train.csv and all other, I do not find any NaN. All data are normal.

Any idea?

Best regard
Volkmar Meiller
Posted on:

04 Dec 2020


Yes, I agree with Volkmar about retaining the indexes.
The best approach to this is using List comprehensions instead of Columns List . My solution can be found on the below link :
Hope it helps!

Posted on:

16 Mar 2021


Ran into the same problem but it turned out i hadn`t been paying attention:

The code in the section 4_16 has to be run 2 times, with commnting out different parts
    df_inputs_prepr = loan_data_inputs_train
    df_targets_prepr = loan_data_targets_train
    #df_inputs_prepr = loan_data_inputs_test
    #df_targets_prepr = loan_data_targets_test
    #df_inputs_prepr = loan_data_inputs_train
    #df_targets_prepr = loan_data_targets_train
    df_inputs_prepr = loan_data_inputs_test
    df_targets_prepr = loan_data_targets_test
and same logic applies at the end of the notebook

Then there is no problem with iloc method in 5_2
But I guess you could also do  all the variable creation first, and do the train-test splitting right before fitting the model

Submit an answer