python - 使用正则表达式分隔符读取 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) 读取时,读取方式不同。
解决方案
也许您应该将 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 |