【问题标题】:pandas column names to list要列出的 pandas 列名
【发布时间】:2015-01-23 14:24:43
【问题描述】:

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

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

df.columns.tolist()

我明白了:

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

我知道,我可以摆脱 u 和 ' 。但我想只得到干净的名字作为列表,而不需要任何黑客攻击。这可能吗?

【问题讨论】:

  • 这是正确的,它只是表明字符串是Unicode字符串。

标签: python pandas


【解决方案1】:

这样就可以了

list(df2)

【讨论】:

    【解决方案2】:

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

    df.columns.to_list()

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

    【讨论】:

      【解决方案3】:

      或者,你可以试试:

      df2 = df.columns.get_values()
      

      这会给你:

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

      然后:

      df2.tolist()
      

      给你:

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

      【讨论】:

      • 相当冗长..但也许这是唯一的方法..?
      • 略显冗长:df.columns.values.tolist()
      • get_values() 方法已弃用:“FutureWarning:'get_values' 方法已弃用,将在未来版本中删除。请改用 '.to_numpy()' 或 '.array'。”
      • 请更新您的答案,因为它仍然是公认的答案。
      • 试试这个:list(df2)
      【解决方案4】:

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

      【讨论】:

      • 代表没有足够代表的@AsheKetchum 发表评论:.replace 的缺点是,如果您的原始变量中有 u,它可能会替换 'u'他们的名字。例如"u'q_ugg'" 将变为 "'q_gg'"
      【解决方案5】:

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

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

      【讨论】:

        【解决方案6】:

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

        【讨论】:

          猜你喜欢
          • 2019-06-04
          • 2014-07-08
          • 2016-01-22
          • 2018-09-29
          • 2021-02-24
          • 2020-12-13
          • 1970-01-01
          • 2017-11-26
          • 2014-02-22
          相关资源
          最近更新 更多