要列出的pandas列名

时间:2014-11-25 14:21:25

标签: python pandas

根据这个帖子: SO: Column names to list

将列名转换为列表应该很简单。但如果我这样做:

df.columns.tolist()

我明白了:

[u'q_igg', u'q_hcp', u'c_igg', u'c_hcp']

我知道,我可以摆脱你和' 。但我想在没有任何黑客的情况下获得干净的名字作为列表。这可能吗?

6 个答案:

答案 0 :(得分:16)

或者,您可以尝试:

df2 = df.columns.get_values()

会给你:

array(['q_igg', 'q_hcp', 'c_igg', 'c_hcp'], dtype=object)

然后:

df2.tolist()

给你:

['q_igg', 'q_hcp', 'c_igg']

答案 1 :(得分:2)

列表[u'q_igg', u'q_hcp', u'c_igg', u'c_hcp']包含Unicode字符串:u表示它们是Unicode字符串,'包含在每个字符串周围。您现在可以在代码中以任何方式使用这些名称。有关Python 2.x中Unicode字符串的更多详细信息,请参阅Unicode HOWTO

答案 2 :(得分:1)

如果您只对打印名称而不使用引号或unicode指标感兴趣,可以执行以下操作:

In [19]: print "[" + ", ".join(df) + "]"
[q_igg, q_hcp, c_igg, c_hcp]

答案 3 :(得分:1)

如前所述,u表示其unicode已转换。无论如何,最干净的方法是将colnames转换为ascii或类似的东西。

In [4]: cols
Out[4]: [u'q_igg', u'q_hcp', u'c_igg', u'c_hcp']

In [5]: [i.encode('ascii', 'ignore') for i in cols]
Out[5]: ['q_igg', 'q_hcp', 'c_igg', 'c_hcp'

这里的问题是您将丢失未在ascii中编码的特殊字符。

更脏的解决方案是获取列表对象的字符串表示并只替换u。我不会使用它,但在这种特殊情况下它可能适合你的需要; - )

In [7]: repr(cols)
Out[7]: "[u'q_igg', u'q_hcp', u'c_igg', u'c_hcp']"
In [11]: x.replace("u", "")
Out[11]: "['q_igg', 'q_hcp', 'c_igg', 'c_hcp']"

请参阅:https://docs.python.org/2/library/repr.html

答案 4 :(得分:0)

简单方法: df-dataframe变量名称

  

df.columns.to_list()

     

这将给出所有列名称的列表。

答案 5 :(得分:0)

这将完成工作

list(df2)