Pandas:如何将字符串(blank)原样读取而非转换为其他值
保留DataFrame中的"(blank)"字符串解决方案
- 核心思路:彻底阻止pandas将"(blank)"识别为缺失值,仅将你需要的内容(比如空字符串)标记为缺失值。
针对CSV文件读取
使用read_csv时,设置以下参数组合:
import pandas as pd df = pd.read_csv( "你的文件路径.csv", keep_default_na=False, # 禁用pandas默认的缺失值识别列表 na_values=[''], # 仅将空字符串视为缺失值 skipinitialspace=False, # 保留单元格首尾空格,避免误处理"(blank)" dtype=str # 强制所有列以字符串类型读取,杜绝自动类型转换 )
针对Excel文件读取
使用read_excel时,参数逻辑一致:
df = pd.read_excel( "你的文件路径.xlsx", keep_default_na=False, na_values=[''], dtype=str )
验证与补救
读取后可通过以下代码验证是否保留了"(blank)":
print(df["目标列名"].unique())
若仍出现缺失值,可手动将其转回字符串:
import numpy as np df["目标列名"] = df["目标列名"].replace({pd.NA: "(blank)", np.nan: "(blank)"})
注意:确保你的
na_values列表中绝对不包含"(blank)",这是之前方案失效的常见原因。
内容的提问来源于stack exchange,提问作者Salih
相关产品推荐
相关产品推荐

