เพื่อให้ความชัดเจนมากขึ้นลองดู DataFrame ที่มีสองระดับในดัชนี (MultiIndex)
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())