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:オブジェクト、デフォルト'''、カラムに複数のレベルがある場合は、他のレベルのネーミング方法を決定します.ない場合は、インデックス名を繰り返します.
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