Pandas設定(set_index)とリセット(reset_index)インデックス

2374 ワード

1、DataFrameの列を索引にする:DataFrame.set_index(keys,drop=True,append=False,inplace=False,verify_integrity=False)*keys:リストを受信し、インデックスに設定する列を指定します.*drop:デフォルトはTrueで、新しいインデックスとしてのカラムを削除します.そうでなければ削除しません.*append:新しいインデックス値を追加し、デフォルトfalseは追加しません.*inplace:元のデータを変更するかどうか、デフォルトfalseで新しいオブジェクトをコピーして変更し、trueで元のデータを変更します.*verify_integrity:新しいインデックスに重複項目があるかどうかを確認します.
2、索引をリセットして、索引を列に変えて、そして通常の数字索引を補充する:DataFrame.reset_index(level=None,drop=False,inplace=False,col_level=0,col_fill=’)*level:int,str,tupleまたはlist、デフォルトではnoneであり、インデックスから指定されたレベルのみが削除されます.デフォルトでは、すべてのレベルが削除されます.*drop:bool、デフォルトはfalse、インデックス列(インデックスに設定された列)は通常の列に復元され、インデックスを整数インデックスにリセットします.そうしないと、インデックス列は直接破棄されます.*inplace:元のデータを変更するかどうか、デフォルトfalseで新しいオブジェクトをコピーして変更し、trueで元のデータを変更します.*col_level:intまたはstr、デフォルトは0で、列に複数のレベルがある場合は、ラベルをどのレベルに挿入するかを決定します.デフォルトでは、最初のレベルが挿入されます.*col_fill:オブジェクト、デフォルト'''、カラムに複数のレベルがある場合は、他のレベルのネーミング方法を決定します.ない場合は、インデックス名を繰り返します.
#    
data = pd.DataFrame(data=[['bar','one','z','1'],
                          ['bar','two','v','2'],
                          ['foo','one','x','3'],
                          ['foo','two','w','4']])
out:
    0    1  2  3
0  bar  one  z  1
1  bar  two  v  2
2  foo  one  x  3
3  foo  two  w  4     

#                         
data.columns = ['a','b','c','d']
out:
     a    b  c  d
0  bar  one  z  1
1  bar  two  v  2
2  foo  one  x  3
3  foo  two  w  4

# ‘c ’     ,           
data.set_index('c')
out:
     a    b  d
c             
z  bar  one  1
v  bar  two  2
x  foo  one  3
w  foo  two  4

#        
data.reset_index()
out:
     a    b  d
c             
z  bar  one  1
v  bar  two  2
x  foo  one  3
w  foo  two  4

# ‘c’      ,              
data.set_index('c',append=True)
out:
       a    b  d
  c             
0 z  bar  one  1
1 v  bar  two  2
2 x  foo  one  3
3 w  foo  two  4

#        (level 1)    
data.reset_index(level=1)
out:
   c    a    b  d
0  z  bar  one  1
1  v  bar  two  2
2  x  foo  one  3
3  w  foo  two  4
#level  none,     (        )    ,              。
data.reset_index()
out:
    level_0  c    a    b  d
0        0   z  bar  one  1
1        1   v  bar  two  2
2        2   x  foo  one  3
3        3   w  foo  two  4