假设我有一个带有多索引的数据框:
col1 col2
date id
2016-04-05 A 100 99
2016-04-05 B 101 98
2016-04-05 C 102 95
...
2016-04-12 A 90 65
2016-04-12 B 91 62
2016-04-12 C 93 64
如何使用col1并转动' id'索引的级别为索引仅为' date'这些列是' id'?
的值 date A B C
2016-04-05 100 101 102
2016-04-06 80 87 83
...
2016-04-12 90 91 93
由于
答案 0 :(得分:1)
我认为您可以先drop
col2
,然后unstack
droplevel
,rename_axis
和reset_index
:
df = df.drop('col2', axis=1).unstack('id')
df.columns = df.columns.droplevel(0)
df = df.rename_axis(None, axis=1).reset_index()
print df
date A B C
0 2016-04-05 100 101 102
1 2016-04-12 90 91 93
使用pivot
的下一个解决方案:
print df.reset_index()
.pivot(index='date', columns='id', values='col1')
.rename_axis(None, axis=1)
.reset_index()
date A B C
0 2016-04-05 100 101 102
1 2016-04-12 90 91 93