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

使用Pandas读取CSV文件时数据被双引号包裹的问题求助

解决Pandas导入CSV后每行被双引号包裹的问题

问题场景

原导入代码:

import pandas as pd
health_data = pd.read_csv("Data_File.csv", header=0, sep='[,]', engine='python')

导入后所有行(包括表头)都被双引号包裹,示例如下:

"Duration Average_Pulse Max_Pulse Calorie_Burnage Hours_Work Hours_Sleep"
0 "30 80 120 240.0 10.0 7"
1 "45 85 120 250.0 10.0 7"

这种情况导致数据无法正常转换为数值类型,需要去除引号恢复正常格式。

解决方案

方案1:导入时直接处理引号(推荐)

修改read_csv的参数,指定双引号为字段包裹符,同时设置正确的分隔符:
如果你的CSV实际是逗号分隔,用以下代码:

import pandas as pd
health_data = pd.read_csv("Data_File.csv", header=0, sep=',', engine='python', quotechar='"')

如果CSV是空格分隔(从输出示例看更匹配),则调整分隔符为正则匹配多个空格:

health_data = pd.read_csv("Data_File.csv", header=0, sep='\s+', engine='python', quotechar='"')

原理:quotechar='"'会让Pandas识别双引号为整行/字段的包裹符号,读取时自动剥离;sep设置为实际分隔符,确保各列数据被正确拆分。

方案2:导入后批量去除引号

如果导入后仍有残留引号,可对文本类型列批量替换:

# 仅对文本类型(object)列去除双引号
health_data = health_data.apply(lambda col: col.str.replace('"', '') if col.dtype == 'object' else col)
# 可选:自动转换数值类型
health_data = health_data.apply(pd.to_numeric, errors='ignore')

验证结果

处理后数据格式恢复正常:

Duration Average_Pulse Max_Pulse Calorie_Burnage Hours_Work Hours_Sleep
0 30 80 120 240.0 10.0 7
...

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 20:42:34