pandas.DataFrame.reset_index的使用介紹


參考鏈接:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.reset_index.html#pandas-dataframe-reset-index

DataFrame.reset_index(level=Nonedrop=Falseinplace=Falsecol_level=0col_fill='')[source]

Reset the index, or a level of it.

Reset the index of the DataFrame, and use the default one instead. If the DataFrame has a MultiIndex, this method can remove one or more levels.

Parameters
level int, str, tuple, or list, default None

Only remove the given levels from the index. Removes all levels by default.

drop bool, default False

Do not try to insert index into dataframe columns. This resets the index to the default integer index.

inplace bool, default False

Modify the DataFrame in place (do not create a new object).

col_level int or str, default 0

If the columns have multiple levels, determines which level the labels are inserted into. By default it is inserted into the first level.

col_fill object, default ‘’

If the columns have multiple levels, determines how the other levels are named. If None then the index name is repeated.

Returns
DataFrame or None

DataFrame with the new index or None if inplace=True.

簡單來看,就是將索引變成columns內容,col_level與col_fill用在列名為多層索引的。

示例代碼

In [59]: df                                                                                                 
Out[59]: 
         class  max_speed
falcon    bird      389.0
parrot    bird       24.0
lion    mammal       80.5
monkey  mammal        NaN

In [60]: df.reset_index()                                                                                   
Out[60]: 
    index   class  max_speed
0  falcon    bird      389.0
1  parrot    bird       24.0
2    lion  mammal       80.5
3  monkey  mammal        NaN

In [61]: df.reset_index(drop=True)                                                                          
Out[61]: 
    class  max_speed
0    bird      389.0
1    bird       24.0
2  mammal       80.5
3  mammal        NaN

In [62]:     

  

上面演示了普通的用法,一個是將index編程了列內容,一個是將index刪除了,都用了默認的數字index

后面演示多層索引的示例。

默認情況下,reset_index將會還原所有的索引

In [62]: 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)                                                                 

In [63]: df                                                                                                 
Out[63]: 
               speed species
                 max    type
class  name                 
bird   falcon  389.0     fly
       parrot   24.0     fly
mammal lion     80.5     run
       monkey    NaN    jump

In [64]: df.reset_index()                                                                                   
Out[64]: 
    class    name  speed species
                     max    type
0    bird  falcon  389.0     fly
1    bird  parrot   24.0     fly
2  mammal    lion   80.5     run
3  mammal  monkey    NaN    jump

  通過第一個參數的level的設置columns,可以指定需要還原的multiindex的名稱

In [75]: df                                                                                                 
Out[75]: 
               speed species
                 max    type
class  name                 
bird   falcon  389.0     fly
       parrot   24.0     fly
mammal lion     80.5     run
       monkey    NaN    jump

In [76]: df.reset_index(level='class')                                                                      
Out[76]: 
         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

In [77]: df.reset_index(level='name')                                                                       
Out[77]: 
          name  speed species
                  max    type
class                        
bird    falcon  389.0     fly
bird    parrot   24.0     fly
mammal    lion   80.5     run
mammal  monkey    NaN    jump

In [78]: df.reset_index(level='name', col_level=1)                                                          
Out[78]: 
                speed species
          name    max    type
class                        
bird    falcon  389.0     fly
bird    parrot   24.0     fly
mammal    lion   80.5     run
mammal  monkey    NaN    jump

In [79]: df.reset_index(level='class', col_level=0, col_fill='type')                                        
Out[79]: 
         class  speed species
          type    max    type
name                         
falcon    bird  389.0     fly
parrot    bird   24.0     fly
lion    mammal   80.5     run
monkey  mammal    NaN    jump

  col_fill參數為設置給mutil_index的默認項

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM