Pandas 使用索引名称作为列名创建 Dataframe
Posted
技术标签:
【中文标题】Pandas 使用索引名称作为列名创建 Dataframe【英文标题】:Pandas create Dataframe with index name as column name 【发布时间】:2018-05-24 12:14:12 【问题描述】:我有一个包含列名和数据的现有数据框。我想将 index.name
的数据框更改为列的名称。我对multi - indexing
感到困惑,我该怎么做?因为那时我需要将该数据框传递给to_sql
函数,该函数将索引视为表的列名。
目前对我来说dataframe.index
是RangeIndex(start=0, stop=1669, step=1)
而dataframe.index.name
是None
我做了如下:
dataframe.index.names = dataframe.columns
dataframe = dataframe.rename_axis(dataframe.columns)
它给了我Length of new names must be 1, got 67
的错误。 67 是我在数据框中的列数。
【问题讨论】:
对于df.index
它正在打印 0...500
这是行数。我希望索引应该在列名和所有列上。
您可以添加一些示例吗?
为什么要贬低伙计们?
【参考方案1】:
这取决于MultiIndex
与否。
对于单个索引需要:
df.index.name = 'foo'
df = df.rename_axis('foo')
MultiIndex
需要:
df.index.names = ('foo', 'bar')
df = df.rename_axis(('foo', 'bar'))
【讨论】:
@PiyushS.Wanare - 为什么需要这个?因为name
是标量,并且要添加许多列名,所以它不起作用。
为`***.com/questions/50503934/…`做这一切
嗯,没有数据很难知道,但有一个想法——某些列的名称是 NaN
吗?可以查吗? print (pd.isnull(df.columns).sum())
?
是的,有一些列是NaN
所以有问题,需要更换。有多个NaN
s 列?以上是关于Pandas 使用索引名称作为列名创建 Dataframe的主要内容,如果未能解决你的问题,请参考以下文章