首页 > 解决方案 > 使用正则表达式分隔符读取 csv 文件

问题描述

我有一个这样的 csv 文件:

x,y,z, vec, s2
1,2,3,(1,2,3),5
3,4,3,(4,5,3),8

我想读取这个文件,vec 为 (a,b,c)。使用 pd.read_csv(filename) 读取时,读取方式不同。

标签: pythonpython-3.xpandas

解决方案


也许您应该将 csv 作为字符串加载,然后拆分为列表,最后将列表转换为数据框。

with open('test.csv') as f:
    csv = f.read()+'\n'
import re
import pandas as pd
reArr = re.findall('([^,]+),([^,]+),([^,]+),(.*),([^,]+)\n',csv)
df=pd.DataFrame(reArr[1:],columns=reArr[0])
print(df)
X 是的 z 向量 s2
0 1 2 3 (1,2,3) 5
1 3 4 3 (4,5,3) 8

推荐阅读