为 DataFrame 中的 NaN 行应用 Map,Python 3.6
Apply Map for NaN rows in DataFrame, Python 3.6
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
地图脚本:
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_List 下面的脚本,其中 Dataset_Id == NaN,而不是其他行。
Dataset_List['Dataset_Id'] = Dataset_List['text_eng'].apply(str.upper).map(MapDF)
尝试将 apply
的结果传递给 fillna
:
Dataset_List['Dataset_Id'].fillna(Dataset_List['text_eng'].apply(str.upper).map(MapDF), inplace=True)
它可以接受一个 Series 作为值,并且对于每个 NaN 它都使用具有相同索引的值。
替代解决方案:
desired_subset = Dataset_List[Dataset_List['Dataset_Id'].isnull()]
desired_subset['Dataset_Id'] = desired_subset['text_eng'].apply(str.upper).map(MapDF)
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
地图脚本:
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_List 下面的脚本,其中 Dataset_Id == NaN,而不是其他行。
Dataset_List['Dataset_Id'] = Dataset_List['text_eng'].apply(str.upper).map(MapDF)
尝试将 apply
的结果传递给 fillna
:
Dataset_List['Dataset_Id'].fillna(Dataset_List['text_eng'].apply(str.upper).map(MapDF), inplace=True)
它可以接受一个 Series 作为值,并且对于每个 NaN 它都使用具有相同索引的值。
替代解决方案:
desired_subset = Dataset_List[Dataset_List['Dataset_Id'].isnull()]
desired_subset['Dataset_Id'] = desired_subset['text_eng'].apply(str.upper).map(MapDF)