もう少し明確にするために、インデックス内に2つのレベル(MultiIndex)を持つDataFrameを見てみましょう。
index = pd.MultiIndex.from_product([['TX', 'FL', 'CA'],
['North', 'South']],
names=['State', 'Direction'])
df = pd.DataFrame(index=index,
data=np.random.randint(0, 10, (6,4)),
columns=list('abcd'))
デフォルトパラメータで呼び出さreset_index
方法は、列にすべてのインデックスレベルを変換し、新しいインデックスのような単純なRangeIndex
を使用しています。
df.reset_index()
レベルが列に変換されるインデックス制御するlevel
パラメータを使用。可能であれば、より明示的なレベル名を使用してください。レベル名がない場合は、外部から0で始まる整数位置によって各レベルを参照できます。ここでスカラー値を使用することも、リセットするすべてのインデックスのリストを使用することもできます。あなたは、インデックスを維持し、次の操作を行うことができ、列にインデックスを有効にするまれなイベントで
df.reset_index(level='State') # same as df.reset_index(level=0)
:
# for a single level
df.assign(State=df.index.get_level_values('State'))
# for all levels
df.assign(**df.index.to_frame())
あなたがしなければならないことを心に留めておきます – dval
'df.reset_index(level = df.index.names、inplace = True) 'を指定すると、指定されたインデックスをすべてのインデックスに対してn回実行することができます(例えば、2つのインデックスがある場合は、全体のマルチインデックスを列に入れる – venti
列にインデックスを付けることはできますかちょうどデータフレームに追加されたので、真の列とインデックスですか? – bretcj7