使用Pandas读取竖线分隔CSV文件时列分隔失败问题求助
解决Pandas按'|'分隔读取CSV失败的问题
可行解决方案
确认实际分隔符:
部分文件的分隔符看似是|,实际可能是全角竖线|、带空格的|等。先读取文件首行验证:with open('C:/dane/raport_d.csv', encoding='ansi') as f: print(f.readline())根据输出调整
sep参数,比如带空格用sep='\s*\|\s*',全角竖线用sep='|'。切换读取引擎:
默认C引擎对特殊分隔符可能存在兼容问题,换成Python引擎重试:df = pd.read_csv('C:/dane/raport_d.csv', encoding='ansi', low_memory=False, sep='|', engine='python')调整文件编码:
若ansi编码不匹配,尝试Windows常用的gbk编码:df = pd.read_csv('C:/dane/raport_d.csv', encoding='gbk', low_memory=False, sep='|')手动拆分数据(兜底方案):
若以上方法无效,可先按单列读取,再手动拆分:# 按单列读取所有内容 df_raw = pd.read_csv('C:/dane/raport_d.csv', encoding='ansi', low_memory=False, sep=None, header=None) # 拆分表头 headers = df_raw.iloc[0, 0].split('|') # 拆分数据行并设置表头 df = df_raw.iloc[1:, 0].str.split('|', expand=True) df.columns = headers
内容的提问来源于stack exchange,提问作者Grzegorz Z
相关产品推荐
相关产品推荐

