首页 > 解决方案 > 如何在我的 pandas 数据框列中设置具有不同值的空值

问题描述

我正在尝试将我的数据框中的一些空值设置为不同的值:'Non-étiquettés'

page_data_fr['Lookup_FR_tag'].loc[page_data_fr['Lookup_FR_tag'].isnull()] = page_data_fr['Lookup_FR_tag'].loc[page_data_fr['Lookup_FR_tag'].isnull()].apply(lambda x: ['Non-étiquettés'])

但是,使用上述方法设置值会导致以下警告:

试图在 DataFrame 中的切片副本上设置一个值

请参阅文档中的注意事项:https ://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy

在阅读了文档并尝试调整我的代码后,我尝试了这个......

dfc = page_data_fr.copy() 

mask = dfc['Lookup_FR_tag'].loc[page_data_fr['Lookup_FR_tag'].isnull()]

dfc['Lookup_FR_tag'].loc[mask, 'Lookup_FR_tag'] = 'Non-étiquettés'

这仍然会产生另一个错误:

ValueError:无法使用包含 NA / NaN 值的非布尔数组进行屏蔽 dfc['Lookup_FR_tag'].loc[page_data_fr['Lookup_FR_tag'].isnull()]

我也尝试过这样做,但仍然不好:

arrOfNulls = []
counter = 0
for x in dfc['Lookup_FR_tag'].isnull():
   if x == True:
      arrOfNulls.append(counter)
      counter += 1
counter += 1

for x in range(len(arrOfNulls)):
    page_data_fr['Lookup_FR_tag'][arrOfNulls[x]] = ['Non-étiquettés']

任何帮助将不胜感激,我不确定我做错了什么或者我是否接近..

标签: pythonpandas

解决方案


你可以这样做:

 import numpy as np
 
 page_data_fr['Lookup_FR_tag'].replace(np.nan,"Non-étiquettés")

推荐阅读