Pandas Python从自定义文件格式读取数据帧

Pandas Python从自定义文件格式读取数据帧,pandas,parsing,dataframe,Pandas,Parsing,Dataframe,使用Python3和pandas 0.19.2 我的日志文件的格式如下: [Header1][Header2][Header3][HeaderN] [=======][=======][=======][=======] [Value1][Value2][Value3][ValueN] [AnotherValue1][ValuesCanBeEmpty][][] ... …这与CSV非常相似,只是每个值都由[和]包围,并且没有真正的分隔符。 将该内容加载到pandas数据框中最有效的方法是什么?

使用Python3和pandas 0.19.2

我的日志文件的格式如下:

[Header1][Header2][Header3][HeaderN]
[=======][=======][=======][=======]
[Value1][Value2][Value3][ValueN]
[AnotherValue1][ValuesCanBeEmpty][][]
...
…这与CSV非常相似,只是每个值都由
[
]
包围,并且没有真正的分隔符。 将该内容加载到pandas数据框中最有效的方法是什么?

您可以使用分隔符
][
,必须通过
\
进行转义。然后通过以下方式删除列和值,并删除包含所有
NaN
的行:


我认为您可以从每行的开头删除
]
,从每行的结尾删除
[
,然后用分隔符
][
读取

s ='''[Header1][Header2][Header3][HeaderN]
[=======][=======][=======][=======]
[Value1][Value2][Value3][ValueN]
[AnotherValue1][ValuesCanBeEmpty][][]'''
f = StringIO(s)

s1 = ''.join([line.lstrip('[').rstrip('\n]') + '\n' for line in f.readlines()])
pd.read_csv(StringIO(s1), sep='\]\[', engine='python')
输出

         Header1           Header2  Header3  HeaderN
0        =======           =======  =======  =======
1         Value1            Value2   Value3   ValueN
2  AnotherValue1  ValuesCanBeEmpty      NaN      NaN

谢谢。我正在研究pandas解析器(),但我无法正确地对任何内容进行子类化…您能否将
]
添加到每行的开头并
[
到每一行的末尾?那么就不需要替换了。投票被否决,因为这并不能回答问题。这是一个解决办法,但不是答案。OP不应该给出一个例子。
         Header1           Header2  Header3  HeaderN
0        =======           =======  =======  =======
1         Value1            Value2   Value3   ValueN
2  AnotherValue1  ValuesCanBeEmpty      NaN      NaN