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

如何用Python删除CSV文件Price列数字间的空格

解决CSV中Price字段特殊空格的问题

先确认空格类型

有些看似普通的空格其实是非换行空格(NBSP,Unicode编码U+00A0),普通的空格替换方法对它无效。可以先运行代码排查:

import pandas as pd
df = pd.read_csv('你的CSV文件路径.csv')
# 提取一条带问题的价格字符串
target_str = df.loc[df['PRICE'].str.contains(' '), 'PRICE'].iloc[0]
# 输出每个字符的Unicode编码
for char in target_str:
    print(f"{char}: {ord(char)}")

如果输出里出现160,就说明是NBSP在搞鬼。

针对性处理方案

方案1:用Pandas批量处理

直接替换所有类型的空白字符(包括普通空格和NBSP):

import pandas as pd
df = pd.read_csv('你的CSV文件路径.csv')
# 正则匹配所有空白字符并删除
df['PRICE'] = df['PRICE'].str.replace(r'\s+', '', regex=True)
# 保存处理后的文件
df.to_csv('清理后的文件.csv', index=False)

如果确定是NBSP,也可以直接指定编码替换:

df['PRICE'] = df['PRICE'].str.replace('\u00A0', '', regex=False)

方案2:用原生CSV模块处理

不用Pandas的话,用Python内置csv模块逐行处理:

import csv
with open('你的CSV文件路径.csv', 'r', encoding='utf-8') as in_file, open('清理后的文件.csv', 'w', newline='', encoding='utf-8') as out_file:
    reader = csv.DictReader(in_file)
    writer = csv.DictWriter(out_file, fieldnames=reader.fieldnames)
    writer.writeheader()
    for row in reader:
        # 同时替换普通空格和NBSP
        row['PRICE'] = row['PRICE'].replace(' ', '').replace('\u00A0', '')
        writer.writerow(row)

额外优化:转成数值类型

如果需要把清理后的价格转成可计算的数值(注意原数据用逗号做小数分隔符):

df['PRICE'] = df['PRICE'].str.replace(',', '.').astype(float)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 16:20:02