>>> df = pd.DataFrame(np.arange(12).reshape((4,3)), index=[['a','a','b','b'], [1,2,1,2]], columns=['green','blue','red']) >>> df.index.names=['key1','key2'] >>> df green blue red key1 key2 a 1012 2345 b 1678 291011
转换成
1 2 3 4 5
key1 key2 green blue red 0 a 1012 1 a 2345 2 b 1678 3 b 291011
解决问题
可以看到这是带有MultiIndex索引的DataFrame对象
首先,可以先来尝试一下普通的DataFrame:
1 2 3 4 5 6 7
>>> normal_df = pd.DataFrame(np.arange(12).reshape((4,3)), columns=['green','blue','red']) >>> normal_df green blue red 0012 1345 2678 391011
最简单的:
1 2 3 4 5 6 7
>>> normal_df['index1'] = normal_df.index >>> normal_df green blue red index1 00120 13451 26782 3910113
>>> df.reset_index(level=0) key1 green blue red key2 1 a 012 2 a 345 1 b 678 2 b 91011 >>> >>> df.reset_index(level=1) key2 green blue red key1 a 1012 a 2345 b 1678 b 291011 >>> >>> df.reset_index(level='key1') key1 green blue red key2 1 a 012 2 a 345 1 b 678 2 b 91011 >>> >>> df.reset_index(level=[0,1]) key1 key2 green blue red 0 a 1012 1 a 2345 2 b 1678 3 b 291011 >>> >>> df.reset_index(level=['key1','key2']) key1 key2 green blue red 0 a 1012 1 a 2345 2 b 1678 3 b 291011