本文摘要:
修改索引列名
修改索引列名为id
df.index.name = 'id'
修改索引起始值
自动生成的索引从100开始
df.index = df.index + 100
将数据某一列设为索引
将userid列设为索引列,inplace=True表示在原df上修改,drop=False表示保留userid列,默认删除userid列。
# 将userid列设为索引列
df.set_index('userid', inplace=True, drop=False)
# 若修改后可以这么查询userid为500的数据
df.loc[500]
# 相当于
df.loc[df['userid'] == 500]
使用index提升查询性能
- 如果index是唯一的,Pandas会使用哈希表优化,查询性能为O(1);
- 如果index不是唯一的,但是有序,Pandas会使用二分查找算法,查询性能为O(logN);
- 如果index是完全随机的,那么每次查询都要扫描全表,查询性能为O(N);
# 判断index是否递增
df.index.is_monotonic_increasing
# 判断index是否唯一
df.index.is_unique
index自动对齐数据
import pandas as pd
s1 = pd.Series([1,2,3], index=list('abc'))
s2 = pd.Series([2,3,4], index=list('bcd'))
s1+s2
s1为
s2为
s1+s2结果为,相同索引b、c分别相加,a、d因无法相加操作返回NaN
*此文仅为个人笔记