python - 熊猫:将扁平列表加载到多列中(基于分隔线)
问题描述
我有一个包含确切内容的文本文件:
COLUMN 1 HEADER
col 1 data line 1
col 1 data line 2
col 1 data line 3
col 1 data line n
COLUMN 2 HEADER
col 2 data line 1
col 2 data line 2
col 2 data line 3
col 2 data line n
COLUMN 3 HEADER
col 3 data line 1
col 3 data line 2
col 3 data line 3
col 3 data line n
如何使用 Python 将其加载到具有多列的 pandas 数据框 df 中,以便
print(df)
返回
COLUMN 1 HEADER COLUMN 2 HEADER COLUMN 3 HEADER
0 col 1 data line 1 col 2 data line 1 col 3 data line 1
1 col 1 data line 2 col 2 data line 2 col 3 data line 2
2 col 1 data line 3 col 2 data line 3 col 3 data line 3
3 col 1 data line n col 2 data line n col 3 data line n
?
解决方案
如果您将输入保存到文本文件中,您可以使用read_csvexample.txt
,即:
pd.read_csv('example.txt',sep=' ')
这将返回一个数据框。
或者,如果想保留所有信息,文件中没有标题:
pd.read_csv('example.txt',sep=' ',skiprows=[5,10])
这将返回:
COLUMN 1 HEADER
col 1 data line 1
1 data line 2
1 data line 3
1 data line n
2 data line 1
2 data line 2
2 data line 3
2 data line n
3 data line 1
3 data line 2
3 data line 3
3 data line n
如果您只对问题所示文件的第一部分感兴趣,则可以使用pd.read_csv('example.txt',sep=' ',skipfooter=10)
. 或者只是在读入之前删除不需要的文件部分。