Python DataFrame空单元格赋值失败:替换最后一行空值为列最大值代码无效
问题产生原因
你使用的example.iloc[-1]['A']属于链式索引操作:pandas会先执行iloc[-1]返回最后一行的副本,再对这个副本执行['A']取值后赋值,所有修改只会作用在临时副本上,不会同步到原始的example DataFrame。如果开启了警告提示,运行这段代码通常会触发SettingWithCopyWarning提示。
正确实现方式
仅填充A列最后一行空值
不要拆分两次索引操作,使用单个索引器同时指定行和列的位置即可:
- 使用
iloc按位置定位(A列是第0列)
example.iloc[-1, 0] = example['A'].max()
- 使用
loc按索引标签定位
example.loc[example.index[-1], 'A'] = example['A'].max()
批量填充最后一行所有数值列的空值为对应列最大值
如果后续需要扩展到多列填充,可以直接用fillna批量处理:
# 先计算所有数值列的最大值 col_max = example.max(numeric_only=True) # 对最后一行的空值做填充 example.iloc[-1] = example.iloc[-1].fillna(col_max)
内容的提问来源于stack exchange,提问作者Claire_L
相关产品推荐
相关产品推荐

