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

如何将Pandas数据框经纬度列的指定异常值替换为pd.NA

你之前写法失效的核心原因是pandas.DataFrame.replace()的第一个参数要求传入需要匹配的值本身,而你传入的是布尔类型的Series,无法匹配到数据中实际存储的0.0和-2e-08数值,因此不会触发替换操作。

正确替换方案

方案1:用loc按掩码赋值(最推荐,和你之前定位的1812行完全匹配)

# 复用你之前定位异常行的掩码,确保只替换你找到的1812行
abnormal_mask = (df3['latitude'] < 0.01) & (df3['longitude'] < 0.01)
df3.loc[abnormal_mask, ['longitude', 'latitude']] = pd.NA
# 验证替换结果
print(df3['longitude'].value_counts(dropna=False), '\n')
print(df3['latitude'].value_counts(dropna=False))

方案2:正确使用replace方法

如果你想用replace实现,需要传入列-值的映射字典:

df3.replace(
    {
        'longitude': {0.0: pd.NA},
        'latitude': {-2e-08: pd.NA}
    },
    inplace=True
)

注意事项

如果你的数据集里存在正常的、小于0.01的经纬度值,不要直接用<0.01的条件全量替换,避免误改正常数据,优先用精确匹配异常值或者你之前验证过的组合掩码筛选。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 14:15:06