pandas索引

本文详细介绍了pandas数据框的索引操作,包括如何建立、重置、选择不同类型的索引,如RangeIndex、Int64Index等,并探讨了索引的属性和常见操作。
摘要由CSDN通过智能技术生成

一、索引

1.1 建立索引

建立索引可以在数据读取加载中指定索引:

import pandas as pd
df = pd.read_excel('team.xlsx', index_col='name')    # 将name列设置为索引
df.head()

效果如下:
在这里插入图片描述
如果在读取数据时没有设置索引,可以使用df.set_index()指定:

df = pd.read_excel('team.xlsx')
df.set_index('name', inplace=True)

如果需要,还可以设置两层索引:

df.set_index(['name', 'team'])    # 设置两层索引
df.set_index([df.name.str[0], 'name'])    # 将姓名的第一个字母和姓名设置为索引

以下为其他两个常用的操作:

df.set_index('team', drop=False)    # 保留原列
df.set_index('team', append=True)    # 保留原来的索引

1.2 重置索引

有时我们想取消已有的索引,可以使用df.reset_index(),它的操作与set_index相反。以下是一些常用的操作:

df.reset_index()    # 清除索引
df.set_index('name').reset_index()    # 相当于什么也没做
# year一级索引取消
df.set_index(['month', 'year']).reset_index(level=1)
df.reset_index(level='year')    # 同上,使用层级索引名

1.3 索引类型

为了适应各种业务数据的处理,索引又针对各种类型数据定义了不同的索引类型。
数字索引共有以下几种:
1、RangeIndex(单调整数范围的不可变索引)。pd.RangeIndex(1,100,2);
2、Int64Index(64位整形索引)。pd.Int64Index([1, 2, 3, 4], name=‘num’);
3、UInt64Index:无符号整数索引。pd.UInt64Index([1, 2, 3, 4]);
4、Float64Index:64位浮点型索引。pd.Float64Index([1.2, 2.4, 4, 6])

1.4 索引的属性

以下方法可以查询索引的属性,同样使用与df.columns,因为他们都是index对象。

df.index.name    # 名称
df.index.array    # array数组
df.index.dtype    # 数据类型
df.index.shape    # 形状
df.index.size    # 元素数量
df.index.values    # array数组

1.5 索引的操作

以下是索引的常用操作,同样适用于df.columns。

df.index.astype('int64')    # 转换类型
df.index.isin()    # 是否存在
df.index.rename('number')    # 修改索引名称
df.index.nunique()    # 不重复值的数量
df.index.sort_values(ascending=False)    # 倒序排序
df.index.map(lambda x:x+'_')    # map函数处理
df.index.str.replace('_', '')    # str替换
df.index.to_list()    # 转换为列表
df.index.to_frame(index=False, name='a')    # 转成DataFrame
df.index.to_series()    # 转成series
df.index.unique()    # 去重
df.index.value_counts()    # 去重及计数
df.index.where(df.index=='a')    # 筛选
df.index.max()    # 最大值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值