【问题标题】:Pandas create Dataframe with index name as column namePandas 使用索引名称作为列名创建 Dataframe
【发布时间】: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 这是行数。我希望索引应该在列名和所有列上。
  • 您可以添加一些示例吗?
  • 为什么要贬低伙计们?

标签: python pandas


【解决方案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 是标量,并且要添加许多列名,所以它不起作用。
  • 嗯,没有数据很难知道,但有一个想法——某些列的名称是 NaN 吗?可以查吗? print (pd.isnull(df.columns).sum()) ?
  • 是的,有一些列是NaN
  • 所以有问题,需要更换。有多个NaNs 列?
猜你喜欢
  • 2016-10-24
  • 1970-01-01
  • 2013-11-19
  • 1970-01-01
  • 1970-01-01
  • 2021-03-04
  • 2014-07-28
相关资源
最近更新 更多