Python Pandas读取CSV因引号问题无法正确拆分列求助
解决Pandas读取CSV时无法拆分13列的问题
问题分析
你的CSV文件包含带逗号的引号字段(例如"Diversity, Equity and Inclusion"),直接使用sep=','会导致Pandas误将引号内的逗号识别为字段分隔符,进而把所有内容合并到单一列中。
解决方案
方法1:调整read_csv参数
添加skipinitialspace=True忽略分隔符后的空格,确保引号内的内容被识别为完整字段:
import pandas as pd file_path = "C:\\Users\\User23\\Downloads\\Detail_Table_Test(2).csv" df = pd.read_csv( file_path, sep=',', header=0, quotechar='"', skipinitialspace=True, engine='python' ) print(df.head())
方法2:使用Python内置csv模块读取
如果Pandas的read_csv仍有问题,改用csv模块先解析数据再转为DataFrame,兼容性更强:
import pandas as pd import csv file_path = "C:\\Users\\User23\\Downloads\\Detail_Table_Test(2).csv" with open(file_path, 'r', encoding='utf-8') as f: # 配置csv读取器,指定引号和分隔符 reader = csv.reader(f, quotechar='"', delimiter=',', skipinitialspace=True) headers = next(reader) # 获取表头 data_rows = list(reader) # 获取所有数据行 df = pd.DataFrame(data_rows, columns=headers) print(df.head())
方法3:指定文件编码
如果文件存在编码问题,尝试添加encoding参数(例如encoding='utf-8'或encoding='gbk'):
df = pd.read_csv( file_path, sep=',', header=0, quotechar='"', skipinitialspace=True, encoding='utf-8', engine='python' )
验证
运行上述代码后,可通过print(df.shape)检查输出是否为(数据行数, 13),确认13列已正确拆分。
内容的提问来源于stack exchange,提问作者rickdijk
相关产品推荐
相关产品推荐

