如何将熊猫数据框的列设置为列表

Posted

技术标签:

【中文标题】如何将熊猫数据框的列设置为列表【英文标题】:how to set columns of pandas dataframe as list 【发布时间】:2020-06-05 11:28:36 【问题描述】:

我有一个 pandas 数据框,当我尝试访问它的列时(如df[["a"]),这是不可能的,因为 这些列被定义为“索引”对象 (pandas.core.indexes.base.Index)。或Index(['col2','col2'], [![enter image description here][1]][1]dtype='object')

我尝试将其转换为 df.columns = df.columns.tolist()df.columns = [str(col) for col in df.columns] 但列仍然作为索引对象。

我想要的是制作df.columns,它会返回一个列表对象。

我能做什么?

【问题讨论】:

你能发布一些你的数据框的例子吗,比如打印出来,或者重新创建它的代码 我已经打印了我的数据框和列列表结果 df.columns始终是一个索引/多索引系列,无论您分配什么。如果你想从中得到一个列表,tolist 就像你一样,或者list(df.columns) 是要走的路。 【参考方案1】:

columns 不可调用。所以,你需要去掉括号()

df.columns 会将列的名称作为对象提供给您。

list(df.columns) 会给你列的名称作为一个列表。

在您的示例中,list(ss.columns) 将返回列名列表。

【讨论】:

【参考方案2】:

试试这个:

df.columns.values.tolist()

由于您尝试使用这种方法进行转换,因此您错过了 values 属性

【讨论】:

确实,它会返回给我一个列表。但是,不要改变数据框,因为如果我再次尝试命令 df.columns,它仍然会返回索引对象。我想要的是像“inplace = True”一样改变数据框 @lucas862 我认为您正在寻找df.rename,这将允许您重命名列对吗? df.rename (columns=oldname: newname, inplace = true【参考方案3】:

你必须将它包裹在 list Constructor 上才能像列表一样运行它,即 list(ss.columns)。

list(ss.columns)

希望这行得通!

【讨论】:

以上是关于如何将熊猫数据框的列设置为列表的主要内容,如果未能解决你的问题,请参考以下文章

如何提高熊猫数据框的列表理解速度

如何将包含列表的列转换为熊猫数据框中的单独列? [复制]

如何迭代熊猫数据框的列以运行回归

如何将整个列表分配给熊猫数据框的每一行

如何将多索引列转换为熊猫数据框的单索引列?

如何将熊猫系列的列值转换为Python中的列表?