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

在VSCode中用Python过滤空白值并替换为-1,保留N/A

解决数据空白值替换问题(保留"N/A",替换空白为-1)

步骤1:先明确空白的类型

先查看列中所有唯一值,确认空白是NaN、空字符串还是其他形式:

print(df['Condition Overall'].unique())

步骤2:精准替换空白值

场景A:空白是空字符串"","N/A"为字符串类型

直接用replace替换空字符串:

df['Condition Overall'] = df['Condition Overall'].replace("", -1)

场景B:空白是NaN(空字符串被解析成了NaN),且"N/A"是字符串类型

用fillna只替换NaN值,不影响"N/A":

df['Condition Overall'] = df['Condition Overall'].fillna(-1)

避免踩坑:读取数据时就区分空白和"N/A"

如果是从文件读取数据,建议读取时就指定只有空字符串被识别为缺失值,防止"N/A"被误解析成NaN:

import pandas as pd
df = pd.read_csv('your_data.csv', na_values=[''])  # 仅将空字符串设为NaN,"N/A"保留为字符串

为什么之前的方法无效?

你把列转为字符串时,astype(str)会把NaN直接转成字符串"nan",导致后续无法区分原本的空白和转出来的"nan",反而混乱了数据。所以不要随意将包含NaN的列转为字符串,先处理缺失值识别再替换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 19:02:33