Python - Pandas 索引index的使用

本文摘要:

在这里插入图片描述

修改索引列名

修改索引列名为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
在这里插入图片描述
*此文仅为个人笔记

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值