Python: 导入双竖线分隔符的CSV文件到Pandas

3
我是Python 3.7的使用者。我正在尝试使用pandas将双管道分隔的 .txt 文件导入Python中。
我的代码如下:
import pandas as pd
avm_sample = pd.read_csv(_avm_sample_file,sep='|')

我最终得到了多个空白列,这是由于双竖线分隔符造成的。
有没有更容易的方法来分隔文件呢?或者,有更好的方法将数据导入pandas dataframe中吗?该文件本身超过1GB。
谢谢, Mike

似乎您可以使用pd.read_table(_avm_sample_file, sep='\|\|'),如此答案所示,但是根据此答案read_csv支持多字符分隔符。 - pault
1个回答

3
当你将'|'作为分隔符时,||自然会被解释为两个分隔符之间有一个空列。你只需要改变你的代码为:
avm_sample = pd.read_csv(_avm_sample_file,sep='\|\|')

(正如下面pault正确指出的那样,这里需要反斜杠,因为如果分隔符不是单个字符,则会将其视为正则表达式,并且|在正则表达式中具有特殊含义。) 示例
from io import StringIO

import pandas as pd

TESTDATA = StringIO("""a||b
    1||4
    2||6
    """)

>>> pd.read_csv(TESTDATA, sep="\|\|")
    a   b
0   1   4
1   2   6

1
@pault 非常感谢 - 我已经更新了我的回答,因为这个原因。你是正确的。 - Ami Tavory
@pault 谢谢!另一个好建议。我已经更新了它。 - Ami Tavory

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接