Press "Enter" to skip to content

Pandas中使用set_index( )与reset_index( )设置索引

在数据分析过程中,有时出于增强数据可读性或其他原因,我们需要对数据表的索引值进行设定。在之前的文章中也有涉及过,在我们的pandas中,常用set_index( )与reset_index( )这两个函数进行索引设置,下面我们来了解一下这两个函数的用法。

set_index( )

语法:

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

参数解释:

keys:列标签或列标签/数组列表,需要设置为索引的列

drop:默认为True,删除用作新索引的列

append:是否将列附加到现有索引,默认为False。

inplace:输入布尔值,表示当前操作是否对原数据生效,默认为False。

verify_integrity:检查新索引的副本。否则,请将检查推迟到必要时进行。将其设置为false将提高该方法的性能,默认为false。

实例说明:

首先打开一份数据

假设我需要把 交易日期 设置为索引,就可以使用set_index()函数

import pandas as pd

pd.set_option('display.unicode.ambiguous_as_wide', True)  #处理数据的列标题与数据无法对齐的情况
pd.set_option('display.unicode.east_asian_width', True)   #无法对齐主要是因为列标题是中文

df=pd.read_csv(r'data\a_stock_201903.csv',encoding='gbk')
df.set_index('交易日期',inplace=True,)
print(df)

这样就把 交易日期 设置为索引了

reset_index( )

语法:

DataFrame.reset_index(level=None, drop=False, inplace=False, col_level=0, col_fill='')

参数解释:

level:数值类型可以为:int、str、tuple或list,默认无,仅从索引中删除给定级别。默认情况下移除所有级别。控制了具体要还原的那个等级的索引 。

drop:当指定drop=False时,则索引列会被还原为普通列;否则,经设置后的新索引值被会丢弃。默认为False。

inplace:输入布尔值,表示当前操作是否对原数据生效,默认为False。

col_level:数值类型为int或str,默认值为0,如果列有多个级别,则确定将标签插入到哪个级别。默认情况下,它将插入到第一级。

col_fill:对象,默认‘’,如果列有多个级别,则确定其他级别的命名方式。如果没有,则重复索引名。

实例说明:

首先打开一份数据

此图片的alt属性为空;文件名为2021-11-15-1.png

假设我要重置这个index,就可以使用这个reset_index()函数

import pandas as pd

pd.set_option('display.unicode.ambiguous_as_wide', True)  #处理数据的列标题与数据无法对齐的情况
pd.set_option('display.unicode.east_asian_width', True)   #无法对齐主要是因为列标题是中文

df=pd.read_csv(r'data\a_stock_201903.csv',encoding='gbk')
df.reset_index(drop=False,inplace=True)
print(df)

如果想把原来旧的index删除掉,只需要把drop设置为True就可以

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注