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

如何基于Pandas DataFrame其他列的值填充NaN空值?

用Pandas根据社区填充区域缺失值

核心思路

先从已有完整数据的行中,建立「社区(neighbourhood)→ 区域(neighbourhood group)」的对应映射,再用这个映射批量填充缺失的区域值。


实现步骤

1. 构建社区-区域映射字典

假设每个社区仅对应唯一区域(多数场景的通用情况),直接从无缺失值的行中提取唯一映射:

# 过滤无缺失值的行,去重后构建映射字典
neighborhood_group_map = df.dropna(subset=['neighbourhood group']).drop_duplicates('neighbourhood').set_index('neighbourhood')['neighbourhood group'].to_dict()

如果存在一个社区对应多个区域的冲突场景,优先取出现次数最多的区域:

from collections import Counter

# 统计每个社区对应的区域及出现次数
group_counts = df.dropna(subset=['neighbourhood group']).groupby('neighbourhood')['neighbourhood group'].agg(Counter)
# 提取每个社区出现频次最高的区域
neighborhood_group_map = {k: v.most_common(1)[0][0] for k, v in group_counts.items()}

2. 批量填充缺失值

用fillna结合map方法,快速替换所有neighbourhood group列的NaN值:

df['neighbourhood group'] = df['neighbourhood group'].fillna(df['neighbourhood'].map(neighborhood_group_map))

3. 验证填充结果

检查是否还有未填充的缺失值:

# 输出剩余缺失值数量
print(df['neighbourhood group'].isna().sum())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 15:32:47