Pandas之DataFrame对象的列和索引之间的转化 约定: import pandas as pd DataFrame对象的列和索引之间的转化 我们常常需要将DataFrame对象中的某列或某几列作为索引,或者将索引转化为对象的列。pandas提供了set_index()/reset_index() 来供我们使用。 一、列转化为索引 df1=pd.DataFrame({'X':range(5),'Y':range(5),'S':list("aaabb"),'Z':[1,1,2,2,2]}) df1 代码结果: S X Y Z 0 a 0 0 1 1 a 1 1 1 2 a 2 2 2 3 b 3 3 2 4 b 4 4 2 指定列为索引 df1.set_index('S') 代码结果: X Y Z S a 0 0 1 a 1 1 1 a 2 2 2 b 3 3 2 b 4 4 2 指定多个列作为多级索引 df1.set_index(['S','Z']) 代码结果: X Y S Z a 1 0 0 1 1 1 2 2 2 b 2 3 3 2 4 4 同时保留作为索引的列 df1.set_index(['S','Z'],drop=False) 代码结果: S X Y Z S Z a 1 a 0 0 1 1 a 1 1 1 2 a 2 2 2 b 2 b 3 3 2 2 b 4 4 2 二、索引转化为列 df2=df1.set_index(['S','Z']) df2 代码结果: X Y S Z a 1 0 0 1 1 1 2 2 2 b 2 3 3 2 4 4 将单个索引作为DataFrame对象的列 df2.reset_index('Z') 代码结果: Z X Y S a 1 0 0 a 1 1 1 a 2 2 2 b 2 3 3 b 2 4 4 将多级索引作为列 df2.reset_index() 代码结果: S Z X Y 0 a 1 0 0 1 a 1 1 1 2 a 2 2 2 3 b 2 3 3 4 b 2 4 4 直接删除对指定索引 df2.reset_index('Z',drop=True) 代码结果: X Y S a 0 0 a 1 1 a 2 2 b 3 3 b 4 4 直接对原DataFrame对象修改 df2.reset_index(inplace=True) df2 代码结果: S Z X Y 0 a 1 0 0 1 a 1 1 1 2 a 2 2 2 3 b 2 3 3 4 b 2 4 4 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持中文源码网。