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.indexRangeIndex(start=0, stop=1669, step=1)

dataframe.index.nameNone

我做了如下:

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 所以有问题,需要更换。有多个NaNs 列?

以上是关于Pandas 使用索引名称作为列名创建 Dataframe的主要内容,如果未能解决你的问题,请参考以下文章

pandas索引操作

Pandas库read_excel()参数详解

Pandas 索引列标题或名称

在 Pandas 中合并数据框(没有列名)

11、pandas的修改列名和索引rename()

从 Pandas 的索引中检索列的名称