简体   繁体   English

熊猫使用索引名称作为列名称创建数据框

[英]Pandas create Dataframe with index name as column name

I have an existing dataframe with column name and data. 我有一个具有列名称和数据的现有数据框。 I want to change index.name for dataframe to be column's name. 我想将index.name更改为列的名称。 I am confused about multi - indexing how do I do that? 我对multi - indexing感到困惑,我该怎么做? Because then I need to pass that dataframe to the to_sql function which considers index as name of column for table. 因为那时我需要将该数据帧传递给to_sql函数,该函数将索引视为表的列名。

Currently for me dataframe.index is RangeIndex(start=0, stop=1669, step=1) 目前我dataframe.indexRangeIndex(start=0, stop=1669, step=1)

and dataframe.index.name is None 并且dataframe.index.nameNone

I have done as follows : 我做了如下:

dataframe.index.names = dataframe.columns
dataframe = dataframe.rename_axis(dataframe.columns)

It's giving me error as Length of new names must be 1, got 67 . 这给了我错误,因为Length of new names must be 1, got 67 67 is number of column I have in dataframe. 67是我在数据框中具有的列数。

It depends if MultiIndex or not. 这取决于是否使用MultiIndex

For single index need: 对于单个索引需要:

df.index.name = 'foo'
df = df.rename_axis('foo')

For MultiIndex need: 对于MultiIndex需要:

df.index.names = ('foo', 'bar')
df = df.rename_axis(('foo', 'bar'))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM