首页 > 解决方案 > 使用python的文本文件标题中的条目列表

问题描述

我有一个 .txt 文件,其中有文本标题和数字数据。我正在使用 python 2.7,并在我的工作中使用 pandas 和 numpy。文件结构如下图所示:

在此处输入图像描述

这个文件的数据可以从这里得到。在这个文件中,我想获取所有标签的列表。例如,在上图中,我希望列表如下所示:

[Tag1, Tag1, Tag1, Tag5, Tag5, Tag6, Tag6]

目前,我正在使用以下方式读取文件:

df = pd.read_csv('dum.txt',sep='\t', header=[0,1], index_col=0)

当我尝试时lst = df.columns.levels[1],我得到Index([u'Tag1', u'Tag5', u'Tag6'], dtype='object', name=u'Tag')的不是我想要的列表,而是我的输出。

如何获取问题中的标签列表,即[Tag1, Tag1, Tag1, Tag5, Tag5, Tag6, Tag6]?提前致谢。

标签: pythonpandas

解决方案


您可以使用get_level_values(1)代替levels[1],然后使用转换为列表tolist()

>>> df.columns.get_level_values(1).tolist()
['Tag1', 'Tag1', 'Tag1', 'Tag5', 'Tag5', 'Tag6', 'Tag6']

原因是levels[1],如您所见,这将为您提供所有独特级别的列表,而get_level_values实际上将返回:

返回请求级别的标签值向量,等于索引的长度


推荐阅读