栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

一文速学-Pandas索引设置操作各类方法详解+代码展示

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

一文速学-Pandas索引设置操作各类方法详解+代码展示


前言

使用Pandasj进行数据分析时需要了解Pandas的基础数据结构Series和DataFrame。若是还不清楚的可以再去看看我之前的三篇博客详细介绍这两种数据结构的处理方法:

一文速学-数据分析之Pandas数据结构和基本操作代码

DataFrame行列表查询操作详解+代码实战

DataFrame多表合并拼接函数concat、merge参数详解+代码操作展示

Pandas中read_excel函数参数使用详解+实例代码

以上三篇均为基础知识,没有比较难的实战,比较容易学会。

首先说明一点,关于包含在异常值里面的空值和重复值均有三篇博客专门详细介绍了处理他们的方法:

一文速学-Pandas处理重复值操作各类方法详解+代码展示

一文速学-Pandas处理缺失值操作各类方法详解

一文速学-Pandas异常值检测及处理操作各类方法详解+代码展示


一、添加索引

有些数据列表处理之前是并没有列索引的,若是直接excel读取文件则默认为第一行索引。

index=pd.read_excel(r'D:pythonpythonlearnindex.xlsx')

使用header为None将不使用第一行为索引,默认从0开始索引:

index=pd.read_excel(r'D:pythonpythonlearnindex.xlsx',header=None)

  

read函数自带一个参数为names可以添加索引:

index=pd.read_excel(r'D:pythonpythonlearnindex.xlsx',header=None,names=['ID','name','old','weight'])

 

这样的话会将索引重写,也可以使用columns:

index.columns=['ID','name','old','weight']

 

行索引也一样:

index.index=[1,2,3,4,5,6,7,8,9,10]

  

二、重新设置索引

同样read()函数中也给出了header和index_col参数:

index=pd.read_excel(r'D:pythonpythonlearnindex.xlsx',header=None,names=['ID','name','old','weight'],index_col=0)

 

也可以set_index重新设置索引起始位置:

set_index(keys, drop=True, append=False, inplace=False, verify_integrity=False) 

  • keys:列标签或列标签/数组列表,需要设置为索引的列
  • drop:默认为True,删除用作新索引的列
  • append:默认为False,是否将列附加到现有索引
  • inplace:默认为False,是否替换原DataFrame
  • verify_integrity:默认为false,检查新索引的副本。否则,请将检查推迟到必要时进行。将其设置为false将提高该方法的性能。 
index.set_index('ID')

 

若要保存索引列则可以修改drop为False:

 append为False则将索引列加入列当中:

 

三,重命名索引

之前read函数中的names就是重命名,一般可以用rename函数来进行:

index.rename(columns={'ID':'id','name':'user'})

 

index.rename(index={0:1,1:2})

 

 四、重置索引

主要使用的是reset_index方法:

set_index=(level=Nonedrop=Falseinplace=Falsecol_level=0col_fill='')

参数解释:

  • level:int、str、tuple或list,默认无,仅从索引中删除给定级别。默认情况下移除所有级别。控制了具体要还原的那个等级的索引 
  • drop:drop为False则索引列会被还原为普通列,否则会丢失
  • inplace:默认为false,适当修改DataFrame(不要创建新对象)
  • col_level:int或str,默认值为0,如果列有多个级别,则确定将标签插入到哪个级别。默认情况下,它将插入到第一级。
  • col_fill:对象,默认‘’,如果列有多个级别,则确定其他级别的命名方式。如果没有,则重复索引名

例如原数据集为:

reset_index会将全部的index都转化为columns:

index.reset_index()

 

index.reset_index(level=0)

#将第0级索引转化为columns:

 

index.reset_index(drop=False)

原DataFrame:

 

drop为False则会把索引列变为普通列: 


 

 

 参阅:

Pandas的set_index和reset_index用法

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/853085.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号