精华内容
下载资源
问答
  • Python)Pandas reset_index()用法总结

    千次阅读 2020-10-13 17:03:10
    Pandas是一个数据处理的库,今天我们来学习reset_index()这个函数的用法。 pandas.DataFrame.reset_index 函数作用:重置索引或其level。 重置数据帧的索引,并使用默认索引。如果数据帧具有多重索引,则此方法...

    Pandas是一个数据处理的库,今天我们来学习reset_index()这个函数的用法。

    pandas.DataFrame.reset_index

    函数作用:重置索引或其level
                      重置数据帧的索引,并使用默认索引。如果数据帧具有多重索引,则此方法可以删除一个或多个level

    函数主要有以下几个参数:reset_index(level=None, drop=False, inplace=False, col_level=0, col_fill='')

    各个参数介绍:

    level:可以是int, str, tuple, or list, default None等类型。作用是只从索引中删除给定级别。默认情况下删除所有级别。

    drop:bool, default False。不要尝试在数据帧列中插入索引。这会将索引重置为默认的整数索引。

    inplace:bool, default False。修改数据帧(不要创建新对象)。

    col_level:int or str, default=0。如果列有多个级别,则确定将标签插入到哪个级别。默认情况下,它将插入到第一层。

    col_fill:object, default。如果列有多个级别,则确定其他级别的命名方式。如果没有,则复制索引名称。

    返回:

    DataFrame or None。具有新索引的数据帧,如果inplace=True,则无索引。

    举例说明:

    df = pd.DataFrame([('bird', 389.0),
    
                       ('bird', 24.0),
    
                       ('mammal', 80.5),
    
                       ('mammal', np.nan)],
    
                      index=['falcon', 'parrot', 'lion', 'monkey'],
    
                      columns=('class', 'max_speed'))
    
    输出:df
             class  max_speed
    falcon    bird      389.0
    parrot    bird       24.0
    lion    mammal       80.5
    monkey  mammal        NaN

    重置索引时,将旧索引添加为列,并使用新的顺序索引:

    df.reset_index()
        index   class  max_speed
    0  falcon    bird      389.0
    1  parrot    bird       24.0
    2    lion  mammal       80.5
    3  monkey  mammal        NaN

    我们可以使用drop参数来避免将旧索引添加为列:

    df.reset_index(drop=True)
        class  max_speed
    0    bird      389.0
    1    bird       24.0
    2  mammal       80.5
    3  mammal        NaN

     

     

    展开全文
  • DataFrame可以通过set_index方法,可以设置单索引和复合索引。 DataFrame.set_index(keys, drop=True, append=False, inplace=False, verify_integrity=False) import pandas as pd import numpy as np df = pd....

    1.set_index

    DataFrame可以通过set_index方法,可以设置单索引和复合索引。 
    DataFrame.set_index(keys, drop=True, append=False, inplace=False, verify_integrity=False) 

    import pandas as pd
    import numpy as np
    df = pd.DataFrame(columns=['a','b'])  #新建一个数据框,索引为空。
    print(df)

    输出结果:

    Empty DataFrame
    Columns: [a, b]
    Index: []

    import pandas as pd
    import numpy as np
    df = pd.DataFrame(columns=['a','b'],index=[0,8,9,0])  #新建一个数据框,并设置索引
    print(df)

    输出结果:

         a    b
    0  NaN  NaN
    8  NaN  NaN
    9  NaN  NaN
    0  NaN  NaN

    #因为'a','b'列还没有赋值,故默认为空值。

    import pandas as pd
    import numpy as np
    df = pd.DataFrame(columns=['a','b'],index=[0,1,2,3])  #新建一个数据框,并设置索引
    a = pd.Series(['bar','bar','foo','zoo'])
    b = pd.Series(['one','two','one','shree'],index=[0,1,2,3])
    c = pd.Series(['z','x','y','d'])
    d = pd.Series([1,5,7,9])
    df['a'] = a
    df['b'] = b
    df['c'] =c
    df['d'] =d
    print(df)

    输出:

         a      b  c  d
    0  bar    one  z  1
    1  bar    two  x  5
    2  foo    one  y  7
    3  zoo  shree  d  9

    #4个series给数据框赋值,在初始化dataframe的时候并没有设定c.d列,赋值的时候默认用c、d两个
    #series的变量名字作为了列索引(字段名)

    indexed1 = df.set_index('c',append=True)  #新增c列设置为索引,参数append=True
    indexed1

    输出:

     

     

    indexed1 = df.set_index('c',append=False)  #将c列设置为索引,参数append=False
    indexed1


    输出:

    indexed1 = df.set_index('c',drop=False) #设置参数drop=False(默认是True),更新索引的同时保持c列存在。
    indexed1

    输出:

    indexed1 = df.set_index(['c','d'],drop=False) #设置参数drop=False(默认是True),更新索引的同时保持c,d列存在。
    indexed1

    输出:

     2.reset_index 
    reset_index可以还原索引,重新变为默认的整型索引 
    DataFrame.reset_index(level=None, drop=False, inplace=False, col_level=0, col_fill=”) 
    level控制了具体要还原的哪个等级的索引 
    drop为False则索引列会被还原为普通列,否则会丢失该列数据,慎重使用。

    indexed1 = df.set_index(['c','d'],drop=False) #设置参数drop=False(默认是True),更新索引的同时保持c,d列存在。
    indexed1

    输出:

    indexed1.reset_index()

    错误提示:ValueError: cannot insert d, already exists

    因为上一步保留了c,d列,因此还原的时候出现冲突,提示已经存在,做如下修改。

    indexed1 = df.set_index(['c','d']) #设置参数drop=False(默认是True),更新索引的同时保持c,d列存在。
    indexed1

    输出:

    当我们在清洗数据时往往会将带有空值的行删除,不论是DataFrame还是Series的index都将不再是连续的索引了,那么这个时候我们可以使用reset_index()方法来重置它们的索引,以便后续的操作。
    具体例子:

    import pandas as pd
    import numpy as np
    data = pd.DataFrame(np.arange(20).reshape(5,4),index=[1,3,4,6,8])
    print(df)

    输出:

    print(data.reset_index())

    输出:

    可以看到此时获得了新的index列,而原来的index变成了我们的数据列,保留了下来。
    如果我们不想保留原来的index为普通列,直接使用重置后的索引,那么可以使用参数drop=True,默认值是False

    print(data.reset_index(drop=True))

    这里写这个的目的是为了后面对数据处理的应用:举个例子,
    新建一个空的DataFrame,只有列索引,没有对应的数据,当你需要引用对应的Series数据到DataFrame中时,
    如果每个Series的index都不一样,那么添加时就会出现NaN值,甚至是错误提示:
    ValueError: cannot reindex from a duplicate axis。

    import pandas as pd
    import numpy as np
    df = pd.DataFrame(columns=['a','b'])
    print(df)
    print("--------------------")
    b = pd.Series([1,1,1,1,1],index=[0,1,3,4,5])
    a = pd.Series([2,2,2,2,2,2],index=[1,2,3,4,6,7])
    df['a'] = a
    df['b'] = b
    print(df)

    输出:

    明显看到b的2索引为空值,这是因为b没有2这个索引,
    如果我们需要它们从0开始按一个顺序排列,那么我们需要使用reset_index()的处理。

     

     

     

     

    展开全文
  • 删除行索引重排: ...ser.reset_index(drop = True) df.reset_index(drop = True) ------------------------------------------ 直接修列索引: df = pd.DataFrame(df,columns = ['One','Two','Three'])


    删除行索引重排:

    ser.reset_index(drop = True)

    df.reset_index(drop = True)

    ------------------------------------------

    直接修列索引:

    df = pd.DataFrame(df,columns = ['One','Two','Three'])

    展开全文
  • DataFrame.reset_index(level=None, drop=False, inplace=False, col_level=0, col_fill='')[source]重置索引或索引的一个级别。重置DataFrame的索引,并使用默认索引。如果DataFrame有一个MultiIndex,此方法可以...

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

    重置索引或索引的一个级别。

    重置DataFrame的索引,并使用默认索引。如果DataFrame有一个MultiIndex,此方法可以删除一个或多个级别。

    参数:level : int, str, tuple, 或list, 默认为None

    只从索引中删除给定的级别。默认移除所有级别。

    drop :bool, 默认为False

    不要尝试向dataframe列插入索引。这会将索引重置为默认整数索引。

    inplace :bool, 默认为False

    适当地修改DataFrame(不要创建新对象)。

    col_level :int 或 str, 默认为 0

    如果列有多个级别,请确定将标签插入到哪个级别。默认情况下,它被插入到第一级。

    col_fill :object, default ‘’

    如果列有多个级别,请确定其他级别的命名方式。如果没有,则重复索引名。

    返回值:DataFrame 或 None

    53/5000

    带有新索引的DataFrame,如果inplace=True,则None。

    例子,df = pd.DataFrame([('bird', 389.0),

    ... ('bird', 24.0),

    ... ('mammal', 80.5),

    ... ('mammal', np.nan)],

    ... index=['falcon', 'parrot', 'lion', 'monkey'],

    ... columns=('class', 'max_speed'))

    >>> df

    class max_speed

    falcon bird 389.0

    parrot bird 24.0

    lion mammal 80.5

    monkey mammal NaN

    重置索引时,会将旧索引添加为列,并使用新的顺序索引:>>> df.reset_index()

    index class max_speed

    0 falcon bird 389.0

    1 parrot bird 24.0

    2 lion mammal 80.5

    3 monkey mammal NaN

    我们可以使用drop参数来避免将旧索引添加为列:>>> df.reset_index(drop=True)

    class max_speed

    0 bird 389.0

    1 bird 24.0

    2 mammal 80.5

    3 mammal NaN

    您也可以将reset_index与MultiIndex 一起使用>>> index = pd.MultiIndex.from_tuples([('bird', 'falcon'),

    ... ('bird', 'parrot'),

    ... ('mammal', 'lion'),

    ... ('mammal', 'monkey')],

    ... names=['class', 'name'])

    >>> columns = pd.MultiIndex.from_tuples([('speed', 'max'),

    ... ('species', 'type')])

    >>> df = pd.DataFrame([(389.0, 'fly'),

    ... ( 24.0, 'fly'),

    ... ( 80.5, 'run'),

    ... (np.nan, 'jump')],

    ... index=index,

    ... columns=columns)

    >>> df

    speed species

    max type

    class name

    bird falcon 389.0 fly

    parrot 24.0 fly

    mammal lion 80.5 run

    monkey NaN jump

    如果索引具有多个级别,我们可以重置其中的一个子集:>>> df.reset_index(level='class')

    class speed species

    max type

    name

    falcon bird 389.0 fly

    parrot bird 24.0 fly

    lion mammal 80.5 run

    monkey mammal NaN jump

    如果我们不删除该索引,则默认情况下会将其放置在顶层。我们可以将其放在另一个级别:>>> df.reset_index(level='class', col_level=1)

    speed species

    class max type

    name

    falcon bird 389.0 fly

    parrot bird 24.0 fly

    lion mammal 80.5 run

    monkey mammal NaN jump

    当索引插入到另一个级别下时,我们可以使用参数col_fill指定在哪个级别下:>>> df.reset_index(level='class', col_level=1, col_fill='species')

    species speed species

    class max type

    name

    falcon bird 389.0 fly

    parrot bird 24.0 fly

    lion mammal 80.5 run

    monkey mammal NaN jump

    如果我们为col_fill指定了不存在的级别,则会创建该级别:>>> df.reset_index(level='class', col_level=1, col_fill='genus')

    genus speed species

    class max type

    name

    falcon bird 389.0 fly

    parrot bird 24.0 fly

    lion mammal 80.5 run

    monkey mammal NaN jump

    展开全文
  • 函数reset_index():重置DataFrame 索引

    千次阅读 2019-09-07 15:33:31
    在应用DataFrame的drop_duplicates()后,... 通过reset_index()方法我们可以重置索引,drop参数为True时,直接丢弃原来的索引,否则原来的索引新生成一列名为'index'的列: df.reset_index(inplace=True,drop=True...
  • 21_Pandas.DataFrame,重置Series的索引index(reset_index) 如果使用reset_index()方法,则可以将pandas.DataFrame,pandas.Series的索引索引(行名称,行标签)重新分配为从0开始的序列号(行号)。 如果将行号...
  • Pythonreset_index函数

    万次阅读 2019-01-18 14:54:43
    DataFrame的reset_index()函数用法: import pandas as pd import numpy as np df = pd.DataFrame(data={ 'A':[1,1,2,2,2], 'B':[2,3,4,6,5], 'C':[3,8,5,12,6] }) df A B C 0 1 2 3 1 1 3 8 2 2 4 5 3 2 6 1...
  • 这两天实在是太忙,甚至都忽略了写博客,今天把23和24的博客补起来...y_train = y_train.reset_index(drop=True) 8、建模后利用WOE工具箱的discrete去分grade 9、回家的时候一直在思考什么才是正确的模型评价方法
  • 本篇介绍dataframe索引用法 索引基本操作 df.columns = [list1] #列索引 aka 字段名 df.index = [list2] #行索引 aka 每行记录索引 #设置索引 df.set_index('col_name') ...df.reset_index(level=None, dr.
  • 关键字:Pandas,groupby,resample 结果,列名,表头,多层,错...如果没有,则重复索引名 注:reset_index还原分为两种类型,第一种是对原DataFrame进行reset,第二种是对使用过set_index()函数的DataFrame进行reset
  • 调用reset_index()即可解决: data1为索引不连续的表,data2为重置索引后索引连续的表。 ————————————————分割线———————————————— 从今天开始,要写一些简洁的、直抵灵魂的...
  • python reset_index()和set_index()的使用

    千次阅读 2020-03-18 02:16:51
    df.reset_index()#默认drop=False 获得新的index,原来的index变成数据列保留下来 col1 col2 col3 0 A 2.0 0 1 A 1.0 1 2 B 9.0 9 3 NaN NaN 4 4 D 7.0 2 5 C NaN 3 说明,重置索引,并且col1 回到了原来的位置 ...
  • 1 问题:当我们对Dataframe对象进行数据清洗之后, 例如去掉含NaN的行之后, 发现行索引还是原来的行索引, 如图所示:代码:结果: 可以看到行索引和原来是一样的2 解决办法:通过reset_index方法代码:结果:drop = True ...
  • 删除重复行 df = df.drop_duplicates() 纵向合并 DataFrame df_1 = pd.DataFrame() df_2 = pd.DataFrame() ...合并完DataFrame之后,各自索引不会变化(010,010),需要重置索引(0~21) df = df.reset_i...
  • 单个标签,例如 或 (请注意,该注释被解释为索引的标签,并且永远不会作为沿索引的整数位置)。5’a’5 标签的列表或数组,例如 。[‘a’, ‘b’, ‘c’] 具有标签的切片对象,例如 。‘a’:‘f’ 与被切片的...
  • set_index()和reset_index()的使用介绍
  • reset_index()函数

    2021-03-02 21:20:28
    reset_index()函数用法
  • pandas中的reset_index()

    2020-09-10 16:37:48
    数据清洗时,会将带空值的行删除,此时DataFrame或Series类型的数据不再是连续的索引,可以使用reset_index()重置索引。 import pandas as pd import numpy as np df = pd.DataFrame(np.arange(20).reshape(5,4),...
  • 作用:DataFrame可以通过set_index方法,将普通列设置为单索引/复合索引 格式:DataFrame.set_index(key,drop=True,append=False,verify_intergrity=False) import pandas as pd df=pd.DataFrame({'A':['0','1','2'...
  • Pandas的set_index和reset_index用法

    万次阅读 多人点赞 2018-11-01 18:38:20
    set_index(): 函数原型:DataFrame.set_index(keys, drop=True, append=False, inplace=False, verify_integrity=False)  参数解释: keys:列标签或列标签/数组列表,需要设置为索引的列 drop:默认为True,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,011
精华内容 1,604
关键字:

python重置索引reset_index

python 订阅