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

如何在Python中去除数组中的分号?Pandas读取CSV文件分号处理

解决Pandas读取CSV后最后一列带分号的问题

嘿,这个问题我之前也碰到过!看起来你的CSV应该是用**逗号(或者其他默认分隔符)**分隔的,但最后一列的每个值末尾都额外加了分号——这时候单纯把分隔符设为;肯定没用,因为其他列的分隔逻辑完全不对。

给你几个简单直接的解决方案:

方案1:读取后直接处理目标列

先正常读取CSV,然后针对带分号的列用str.replace去掉分号,如果需要转成数值类型(毕竟你这列看起来是数值),再转成float:

import pandas as pd

# 先正常读取文件(假设原分隔符是逗号)
df = pd.read_csv('your_data.csv')

# 去掉Z-Axis列的分号
df['Z-Axis'] = df['Z-Axis'].str.replace(';', '', regex=False)

# 转成数值类型(可选,但推荐,方便后续计算)
df['Z-Axis'] = pd.to_numeric(df['Z-Axis'])

这里加regex=False是因为我们只是替换普通字符,不需要正则匹配,这样更快也更安全。

方案2:读取时就处理(用converters参数)

如果不想读取后再额外处理,可以在read_csv的时候直接指定转换器,提前去掉分号:

# 用lambda函数简洁处理
df = pd.read_csv(
    'your_data.csv',
    converters={'Z-Axis': lambda x: x.replace(';', '')}
)

# 同样转数值
df['Z-Axis'] = pd.to_numeric(df['Z-Axis'])

要是你有多个列都带分号,还可以写个通用函数传给converters。

方案3:批量处理所有带分号的字符串列

如果不确定哪些列有分号,或者多列都存在这个问题,可以用applymap批量处理所有字符串类型的列:

df = df.applymap(lambda x: x.replace(';', '') if isinstance(x, str) else x)

这样会自动跳过数值类型的列,只处理字符串列里的分号。

处理完之后你再看df['Z-Axis'].dtype,应该就从object变成float64了,数值也能正常用啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:18:20