平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“pandas重置索引的几种做法?教你恢复默认行号”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。
Pandas中DataFrame重置索引
在Pandas里,自定义索引后,有时候又需恢复默认索引。
import pandas as pd
import numpy as np
df = pd.DataFrame(np.arange(20).reshape(5,4),columns=['a','b','c','d'])
df
| 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 |
# 对df重排顺序,得到索引顺序倒序的数据
df = df.sort_values('a',ascending=False)
df
| 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 |
一、根据数据行的个数重新赋予索引
df.index = range(len(df))
df
| 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)
落到代码里,drop=True表示删除原索引,不然会在数据表格中新生成一列’index’数据
df = df.reset_index()
df
| index | a | b | c | d | |
|---|---|---|---|---|---|
| 0 | 4 | 16 | 17 | 18 | 19 |
| 1 | 3 | 12 | 13 | 14 | 15 |
| 2 | 2 | 8 | 9 | 10 | 11 |
| 3 | 1 | 4 | 5 | 6 | 7 |
| 4 | 0 | 0 | 1 | 2 | 3 |
df = df.reset_index(drop=True)
df
| 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=range(len(df))
df = df.reindex(labels=range(len(df)))
df
| 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 |
四、采用set_index()自定义索引
将原数据集中的列作为索引。
drop=True,默认,是将数据作为索引后,在表格中删除原数据
落到代码里,append=False,默认,是将新设置的索引设置为内层索引,原索引是外层索引
df = df.set_index(keys=['a'])
df
| b | c | d | |
|---|---|---|---|
| a | |||
| 16 | 17 | 18 | 19 |
| 12 | 13 | 14 | 15 |
| 8 | 9 | 10 | 11 |
| 4 | 5 | 6 | 7 |
| 0 | 1 | 2 | 3 |
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多兼容脚本之家。
- pandas重置索引标签的实现示例
- Pandas.DataFrame重置Series的索引index(reset_index)
- Pandas reindex重置索引的采用
- pandas中DataFrame重置索引的几种方法
- 在Python中pandas.DataFrame重置索引名称的实例
- python pandas 对series和dataframe的重置索引reindex方法