前言
使用Pandasj进行数据分析时需要了解Pandas的基础数据结构Series和DataFrame。若是还不清楚的可以再去看看我之前的三篇博客详细介绍这两种数据结构的处理方法:
一文速学-数据分析之Pandas数据结构和基本 *** 作代码
DataFrame行列表查询 *** 作详解+代码实战
DataFrame多表合并拼接函数concat、merge参数详解+代码 *** 作展示
Pandas中read_excel函数参数使用详解+实例代码
以上三篇均为基础知识,没有比较难的实战,比较容易学会。
首先说明一点,关于包含在异常值里面的空值和重复值均有三篇博客专门详细介绍了处理他们的方法:
一文速学-Pandas处理重复值 *** 作各类方法详解+代码展示
一文速学-Pandas处理缺失值 *** 作各类方法详解
一文速学-Pandas异常值检测及处理 *** 作各类方法详解+代码展示
一、添加索引
有些数据列表处理之前是并没有列索引的,若是直接excel读取文件则默认为第一行索引。
index=pd.read_excel(r'D:\python\pythonlearn\index.xlsx')
使用header为None将不使用第一行为索引,默认从0开始索引:
index=pd.read_excel(r'D:\python\pythonlearn\index.xlsx',header=None)
read函数自带一个参数为names可以添加索引:
index=pd.read_excel(r'D:\python\pythonlearn\index.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:\python\pythonlearn\index.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=None, drop=False, inplace=False, col_level=0, col_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用法
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)