在pandas中,索引可以看做是数据的“标签”,用于标识数据表中每个数据的位置。pandas提供了设置索引和重置索引的功能,以方便用户对数据进行排序、筛选等操作。
首先,通过以下代码创建一个示例DataFrame:
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Cathy', 'David'],
'score': [80, 75, 90, 85]}
df = pd.DataFrame(data)
print(df)
输出为:
name score
0 Alice 80
1 Bob 75
2 Cathy 90
3 David 85
设置索引
可以通过set_index()
方法设置索引。例如,将name
列作为索引:
df = df.set_index('name')
print(df)
输出为:
score
name
Alice 80
Bob 75
Cathy 90
David 85
这里,通过set_index()
方法将name
列作为索引,并将结果保存在原始的DataFrame中。可以看到,原始的name
列已经变成了索引,而其它列仍然保留不变。
如果要设置多个列为索引,则可以传入一个列名的列表,例如:
df = pd.DataFrame(data)
df = df.set_index(['name', 'score'])
print(df)
输出为:
Empty DataFrame
Columns: []
Index: [(Alice, 80), (Bob, 75), (Cathy, 90), (David, 85)]
这里,通过set_index()
方法将name
和score
两列同时设置为索引,可以看到结果中没有任何列,只有一个表示索引的列表。
重置索引
可以通过reset_index()
方法重置索引,即将当前的索引变回普通的列并重新生成默认的整数索引。例如:
df = df.reset_index()
print(df)
输出为:
name score
0 Alice 80
1 Bob 75
2 Cathy 90
3 David 85
这里,通过reset_index()
方法将当前的索引变成普通的列,并重新生成默认的整数索引。
另外,如果只想重置部分索引,可以使用level
参数指定要重置的索引级别。例如,如果之前已经将name
列作为索引,现在想要把它变成普通列,可以使用以下代码:
df = df.reset_index(level='name')
print(df)
输出为:
name score
0 Alice 80
1 Bob 75
2 Cathy 90
3 David 85
这里,通过指定level='name'
,只重置了name
列作为索引,而score
列仍然保留为索引。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Pandas设置索引、重置索引方法详解 - Python技术站