本文介绍了将MultiIndex数据框重塑为表格格式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
给出一个示例MultiIndex:
Given a sample MultiIndex:
idx = pd.MultiIndex.from_product([[0, 1, 2], ['a', 'b', 'c', 'd']])
df = pd.DataFrame({'value' : np.arange(12)}, index=idx)
df
value
0 a 0
b 1
c 2
d 3
1 a 4
b 5
c 6
d 7
2 a 8
b 9
c 10
d 11
如何有效地将其转换为表格格式?
How can I efficiently convert this to a tabular format like so?
a b c d
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
此外,鉴于上述数据框,如何将其恢复为原始的多索引状态?
Furthermore, given the dataframe above, how can I bring it back to its original multi-indexed state?
我尝试过的事情:
pd.DataFrame(df.values.reshape(-1, df.index.levels[1].size),
index=df.index.levels[0], columns=df.index.levels[1])
哪个可以解决第一个问题,但是我不确定如何从那里恢复到原来的状态.
Which works for the first problem, but I'm not sure how to bring it back to its original from there.
推荐答案
使用unstack
和stack
In [5359]: dff = df['value'].unstack()
In [5360]: dff
Out[5360]:
a b c d
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
In [5361]: dff.stack().to_frame('name')
Out[5361]:
name
0 a 0
b 1
c 2
d 3
1 a 4
b 5
c 6
d 7
2 a 8
b 9
c 10
d 11
这篇关于将MultiIndex数据框重塑为表格格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!