【发布时间】:2021-01-19 01:24:34
【问题描述】:
我正在尝试将我的数据框中的一些空值设置为不同的值:'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'])
但是,使用上述方法设置值会导致以下警告:
试图在数据帧的切片副本上设置值
请参阅文档中的注意事项: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']
任何帮助将不胜感激,我不确定我做错了什么或者我是否接近..
【问题讨论】:
-
您考虑过使用
DataFrame.fillna()或Series.fillna()方法吗? pandas.pydata.org/pandas-docs/stable/reference/api/…