簡體   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