应用映射将DataFrame中的NaN行替换为Python 3.6

2024-06-01 00:27:28 发布

您现在位置:Python中文网/ 问答频道 /正文

主题详细信息

                   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 List运行下面的脚本,其中Dataset\u Id==NaN,而不是为其他行运行

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

Tags: textidtopicdatasetenglistaccountingsystems
2条回答

替代解决方案:

desired_subset = Dataset_List[Dataset_List['Dataset_Id'].isnull()]
desired_subset['Dataset_Id'] = desired_subset['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,它使用具有相同索引的值

相关问题 更多 >