You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用反转字典填充缺失值后,如何保留DataFrame全部列并输出?

解决DataFrame填充缺失值后丢失其他列的问题

问题出在你执行df.set_index('Country')['Region']时,只选取了Region列进行后续操作,导致其他列被过滤掉。以下两种方法可以保留完整的DataFrame:

方法一:直接对Region列填充(推荐)

不需要单独提取列,直接通过Country映射字典值来填充Region的缺失值,其他列完全保留:

revdct = {c: r for r, lst in dct.items() for c in lst}
# 用Country匹配字典中的Region,填充Region列的缺失值
df['Region'] = df['Region'].fillna(df['Country'].map(revdct))

方法二:保留全量列进行索引操作

如果一定要用set_index的方式,不要单独选取Region列,而是对整个DataFrame操作后再更新Region列:

revdct = {c: r for r, lst in dct.items() for c in lst}
# 设置Country为索引,此时所有列都保留
df = df.set_index('Country')
# 仅对Region列进行缺失值填充
df['Region'] = df['Region'].fillna(revdct)
# 恢复Country为普通列
df = df.reset_index()

执行以上任意一种方法后,你的DataFrame会保留所有原始列,同时完成Region列的缺失值填充。

内容的提问来源于stack exchange,提问作者Anastasia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 17:12:08