繁体   English   中英

要列出的熊猫列名称

[英]pandas column names to list

根据此线程: SO:要列出的列名

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

df.columns.tolist()

我确实得到:

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

我知道,我可以摆脱 u 和 ' 。 但我只想获得干净的名称作为列表,而无需任何黑客攻击。 那可能吗 ?

或者,您可以尝试:

df2 = df.columns.get_values()

这会给你:

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

然后:

df2.tolist()

这给了你:

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

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

简单易行的方法:df-dataframe 变量名

df.columns.to_list()

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

如果您只想打印不带引号或 unicode 指示符的名称,您可以执行以下操作:

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

如前所述, 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

这将完成工作

list(df2)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM