您可以使用read_csv
與分隔符][
必須由\
轉義。然後replace
列和價值觀,通過dropna
刪除行與所有NaN
:
import pandas as pd
from pandas.compat import StringIO
temp=u"""[Header1][Header2][Header3][HeaderN]
[=======][=======][=======][=======]
[Value1][Value2][Value3][ValueN]
[AnotherValue1][ValuesCanBeEmpty][][]"""
#after testing replace 'StringIO(temp)' to 'filename.csv'
df = pd.read_csv(StringIO(temp), sep="\]\[", engine='python')
df.columns = df.columns.to_series().replace(['^\[', '\]$'],['',''], regex=True)
df = df.replace(['^\[', '\]$', '=', ''], ['', '', np.nan, np.nan], regex=True)
df = df.dropna(how='all')
print (df)
Header1 Header2 Header3 HeaderN
1 Value1 Value2 Value3 ValueN
2 AnotherValue1 ValuesCanBeEmpty NaN NaN
print (df.columns)
Index(['Header1', 'Header2', 'Header3', 'HeaderN'], dtype='object')
感謝你爲這個。我正在研究熊貓解析器(https://github.com/pandas-dev/pandas/blob/v0.19.2/pandas/io/parsers.py#L494-L646),我無法正確地分類任何東西。 .. – Guillaume
Wau,不錯的主意;) – jezrael
你可以在每一行的開頭加'''和'['到每一行的結尾?那麼就沒有必要更換了。 –