首页 > 解决方案 > 熊猫:将扁平列表加载到多列中(基于分隔线)

问题描述

我有一个包含确切内容的文本文件:

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

?

标签: pythonpandasdataframe

解决方案


如果您将输入保存到文本文件中,您可以使用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). 或者只是在读入之前删除不需要的文件部分。


推荐阅读