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

如何无需指定列即可清除Pandas读取CSV文件时的所有多余空格

可行修改方案

修改思路

  • 编写通用的空格清理函数,仅处理字符串类型的值,保留数字、日期等非字符串类型数据不变,无需提前指定列,适配任意CSV文件
  • 清理逻辑:先去除字符串首尾空格,再将中间连续的多个空格替换为单个空格
  • 读取CSV后对整个DataFrame全局应用清理函数,再转换为OrderedDict输出

完整代码

import re
import pandas as pd
from collections import OrderedDict

def clean_extra_spaces(val):
    # 仅对字符串类型做空格处理,其他类型直接返回
    if isinstance(val, str):
        # 先删首尾空格,再将中间连续多空格替换为单空格
        return re.sub(r'\s+', ' ', val.strip())
    return val

file = input("Input any csv file or file path \nYour input: ")
df = pd.read_csv(file)
# 全局清理所有元素的多余空格
df = df.applymap(clean_extra_spaces)

for i, row in df.iterrows():
    d = OrderedDict(zip(row.index.tolist(), row.tolist()))
    print(d)

效果验证

使用你提供的示例DataFrame运行代码,输出结果与期望输出完全一致:

OrderedDict([('First Name', 'Kate'), ('Last Name', 'Rose')])
OrderedDict([('First Name', 'Tim'), ('Last Name', 'John son')])
OrderedDict([('First Name', 'James'), ('Last Name', 'House')])

问题解决说明

这个方案覆盖了你之前遇到的所有问题:

  • 无需手动指定字符串类型列,自动识别处理字符串,适配任意CSV文件
  • 不需要修改pd.read_csv的sep参数,不会出现数据变为None的问题
  • 同时处理首尾空格、中间连续多倍空格,满足所有空格清理需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 21:06:02