如何使用不同的值设置pandas dataframe列中的空值

2024-10-05 18:37:55 发布

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

我试图将数据帧中的一些空值设置为另一个值:“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'])

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

A value is trying to be set on a copy of a slice from a DataFrame

See the caveats in the documentation: 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: Cannot mask with non-boolean array containing NA / NaN values 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']

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


Tags: indatatagcounterpagefrlookuploc