使用pd.read_csv读取CSV时数据仅存首列其余列显NaN如何解决
解决方案
你的CSV文件每行内容被额外的双引号整体包裹,导致pandas读取时将整行判定为单个字符串,引号内部的逗号不会被识别为分隔符,因此直接指定sep=','无效。你之前的代码未做分列操作,带逗号的整串无法直接转换为数值,因此触发类型转换报错。
推荐优先在读取阶段直接解决,效率最高:
import pandas as pd df = pd.read_csv( "data.csv", quotechar='"', # 指定双引号为引用标识,读取时自动剔除外层包裹的双引号 sep=",", header=None # 若你的CSV文件自带表头请删除该参数 ) # 如需统一转换为数值类型可添加以下代码 df = df.apply(pd.to_numeric)
如果已经将文件读取为单列数据,可通过字符串处理拆分:
# 假设读取后的单列列名为col_1 df = df["col_1"].str.strip('"').str.split(",", expand=True) df = df.apply(pd.to_numeric)
两种方式都可以得到你预期的分列结果,每列对应一个数值。
内容的提问来源于stack exchange,提问作者letdatado
相关产品推荐
相关产品推荐

