Topic_Details
Topic Source_Code Anchor Sub_Topic_Dataset Dataset_Id
42 Macroeconomic Accounting Systems GESAMT Financial Accounts ESA 1995 DBB_GESAMTFAE12019
43 Macroeconomic Accounting Systems GESAMT GESAMTFINZ Financial Accounts ESA 2010 DBB_GESAMTFINANZ2019
44 Macroeconomic Accounting Systems GESAMT GESAMTVOLK National Accounts DBB_GESAMTVOLK2019
Dataset_List:
anchor text_eng Dataset_Id
0 GESAMTVOLK National DBB_GESAMTVOLK2019
0 GESAMTFINZ Financial accounts DBB_GESAMTFINANZ2019
0 Financial accounts ESA 1995 NaN
Map Script:
MapDF = dict(zip(Topic_Details['Sub_Topic_Dataset'].str.upper(), Topic_Details['Dataset_Id']))
Dataset_List['Dataset_Id'] = Dataset_List['text_eng'].apply(str.upper).map(MapDF)
I just want to run below script for the Dataset Dataset_List where Dataset_Id == NaN, not for other rows.
Dataset_List['Dataset_Id'] = Dataset_List['text_eng'].apply(str.upper).map(MapDF)
try passing the result of apply
to fillna
:
Dataset_List['Dataset_Id'].fillna(Dataset_List['text_eng'].apply(str.upper).map(MapDF), inplace=True)
It can accept a Series as a value, and for every NaN it uses the value with same index.