如何将熊猫数据框的列设置为列表
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)
希望这行得通!
【讨论】:
以上是关于如何将熊猫数据框的列设置为列表的主要内容,如果未能解决你的问题,请参考以下文章