Pandas阅读CSV,以^G作为分隔符

ruarlubt  于 2023-05-11  发布在  其他
关注(0)|答案(1)|浏览(166)

CSV文件的分隔符为**^G**。我使用pandas,当前分隔符是逗号。我有一个新的要求,要读取以**^G**分隔的CSV。是否有任何支持的库关联?此外,所有列都用引号括起来。
CSV数据示例

"2198"^G"data"^G"x"
"2199"^G"data2"^G"y"
"2198"^G"data3"^G"z"

基于我在命令下尝试的建议

df = pd.read_csv(f, engine="python", sep=r"\^G", header=None, names=columns, quoting=csv.QUOTE_NONE)

我得到下面的输出

{"col1":"\"2198\"","col2":"\"data\"","col3":"\"x\"}

如何在最终输出中删除数据的引号和斜线?

u2nhd7ah

u2nhd7ah1#

使用read_csvengine='python'并转义^,因为特殊的正则字符:

df = pd.read_csv(file, sep=r"\^G", engine='python')

编辑:您可以使用转换器与strip删除"

columns = list('abc')

df = pd.read_csv(file,
                 engine="python", 
                 sep=r"\^G",
                 header=None, 
                 names=columns, 
                 converters=dict.fromkeys(columns, lambda x: x.strip('"')))
    
print (df)

      a      b  c
0  2198   data  x
1  2199  data2  y
2  2198  data3  z

相关问题