在pandas中,Dataframe索引关系着数据的读取与插入等操作,本文主要介绍几种常见的重建索引方法。
>>> import pandas as pd
>>> import numpy as np
>>> df = pd.DataFrame(np.arange(20).reshape((5, 4)),columns=['a', 'b', 'c', 'd'])
a b c d
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
3 12 13 14 15
4 16 17 18 19
# 对其重排顺序,得到索引顺序倒序的数据
>>> df2 = df.sort_values('a', ascending=False)
a b c d
4 16 17 18 19
3 12 13 14 15
2 8 9 10 11
1 4 5 6 7
0 0 1 2 3
下面对df2重置索引,使其索引从0开始
方法一:直接赋值
>>> df2.index = range(len(df2))
>>> df2
a b c d
0 16 17 18 19
1 12 13 14 15
2 8 9 10 11
3 4 5 6 7
4 0 1 2 3
方法二:reset_index函数
# drop=True表示删除原索引,不然会在数据表格中新生成一列'index'数据
>>> df2 = df2.reset_index(drop=True)
>>> df2
a b c d
0 16 17 18 19
1 12 13 14 15
2 8 9 10 11
3 4 5 6 7
4 0 1 2 3
方法三:reindex函数
# labels是第一个参数,可以省略
>>> df2 = df2.reindex(labels=range(len(df))
>>> df2
a b c d
0 16 17 18 19
1 12 13 14 15
2 8 9 10 11
3 4 5 6 7
4 0 1 2 3