在Python 3.6的DataFrame中为NaN行应用映射

在Python 3.6的DataFrame中为NaN行应用映射,python,python-3.x,pandas,dataframe,map-function,Python,Python 3.x,Pandas,Dataframe,Map Function,专题(详情) Topic Source_Code Anchor Sub_Topic_Dataset Dataset_Id 42 Macroeconomic Accounting Systems GESAMT Financial Accounts ESA 1995 DBB_GESAMTFAE12019 43 Macroeconomic Accounting Sy

专题(详情)

                   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
数据集列表:

       anchor                     text_eng            Dataset_Id
0  GESAMTVOLK            National             DBB_GESAMTVOLK2019
0  GESAMTFINZ  Financial accounts           DBB_GESAMTFINANZ2019
0              Financial accounts ESA 1995                   NaN
映射脚本:

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)
我只想在下面的脚本中运行Dataset\u列表,其中Dataset\u Id==NaN,而不是其他行

Dataset_List['Dataset_Id'] = Dataset_List['text_eng'].apply(str.upper).map(MapDF)

尝试将
apply
的结果传递给:

Dataset_List['Dataset_Id'].fillna(Dataset_List['text_eng'].apply(str.upper).map(MapDF),inplace=True)
它可以接受一个系列作为值,并且对于每个NaN,它使用具有相同索引的值。

替代解决方案:

desired_subset = Dataset_List[Dataset_List['Dataset_Id'].isnull()]
desired_subset['Dataset_Id'] = desired_subset['text_eng'].apply(str.upper).map(MapDF)

你什么意思
fillna
不会更改非NaNSorry的行的值。如果是我的错误,请更正答案。