[英]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']"
這將完成工作
list(df2)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.