列序号按顺序重排
# 方法1 速度更快# drop控制重拍index后是否将原先的index加入DataFrame,# 为True时不加入,为False时加入,默认值为Falsedf.reset_index(drop=True, inplace=True)# 方法2df.index = range(len(df))
列序号转为DataFrame中的一列
df.reset_index(drop=False) # 默认为False
其中一列设置为index
df.set_index(["D"], inplace=True)
多级行列标签的情况
https://blog.csdn.net/weixin_43298886/article/details/108090189
指定列名
data = pd.DataFrame({'a':[1,2,3],'b':[2,3,4],'c':[3,4,5]})data.set_index([['A', 'B', 'C']],inplace=True)
多级索引情况
参数level
如果索引有多个列,仅从索引中删除由level指定的列,默认删除所有列。输入整数时表示将index的names中下标为level的索引删除;输入为字符串时表示将名字为level的索引删除
import pandas as pdimport numpy as npindex = pd.MultiIndex.from_tuples([('bird', 'falcon'), ('bird', 'parrot'), ('mammal', 'lion'), ('mammal', 'monkey')], names=['class', 'name'])columns = pd.MultiIndex.from_tuples([('speed', 'max'), ('species', 'type')])df = pd.DataFrame([(389.0, 'fly'), ( 24.0, 'fly'), ( 80.5, 'run'), (np.nan, 'jump')], index=index, columns=columns)print(df)print('\n')df0 = df.reset_index()print(df0)print('\n')df1 = df.reset_index(level=1)print(df1)print('\n')df2 = df.reset_index(level='name')print(df2)
参数col_level
import pandas as pdimport numpy as npindex = pd.MultiIndex.from_tuples([('bird', 'falcon'), ('bird', 'parrot'), ('mammal', 'lion'), ('mammal', 'monkey')], names=['class', 'name'])columns = pd.MultiIndex.from_tuples([('speed', 'max'), ('species', 'type')])df = pd.DataFrame([(389.0, 'fly'), ( 24.0, 'fly'), ( 80.5, 'run'), (np.nan, 'jump')], index=index, columns=columns)print(df)print('\n')df1 = df.reset_index(level=0, col_level=0)print(df1)print('\n')df2 = df.reset_index(level=0, col_level=1)print(df2)print('\n')
参数col_fill
重置索引时被删除的索引只能插入一个级别,如果列名(columns)有多个级别,那么这个列的列名的其他级别如何命名就由col_fill决定,默认不做填充,如果传入None则用被删除的索引的名字填充
import pandas as pdimport numpy as npindex = pd.MultiIndex.from_tuples([('bird', 'falcon'), ('bird', 'parrot'), ('mammal', 'lion'), ('mammal', 'monkey')], names=['class', 'name'])columns = pd.MultiIndex.from_tuples([('speed', 'max'), ('species', 'type')])df = pd.DataFrame([(389.0, 'fly'), ( 24.0, 'fly'), ( 80.5, 'run'), (np.nan, 'jump')], index=index, columns=columns)print(df)print('\n')df0 = df.reset_index(level=0, col_level=0)print(df0)print('\n')df1 = df.reset_index(level=0, col_level=0, col_fill=None)print(df1)print('\n')df2 = df.reset_index(level=0, col_level=1, col_fill='species')print(df2)print('\n')df3 = df.reset_index(level=0, col_level=0, col_fill='genus')print(df3)print('\n')


