如何使用包含多个字符的分隔符将.txt解析为pandas df?

时间:2017-03-25 14:41:41

标签: python regex pandas separator

我有一个数据集,我想在python中使用pandas进行分析。它全部包含在.txt中,但分隔符是+++ $ +++。我怎么解析这个?

import pandas as pd
df = pd.read_csv('filename.txt', sep='+++$+++', header=None)

这两行提出了这个错误:

sre_constants.error: nothing to repeat

2 个答案:

答案 0 :(得分:5)

那是因为如果分隔符长于1个char,则它被解释为正则表达式,如http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html中所述;所以+指示“之前char的任意数量的匹配”,但没有,所以“没有什么可重复的”。

我认为转义这些符号可能有用。

答案 1 :(得分:2)

尽管回答晚了。我今天也面临着同样的疑问。我对此的解决方案是:

pd.read_table('test.txt',header=None,sep=' \+\+\+\$\+\+\+ ', engine='python')

这很好用。