如何通过索引重塑多列数据框? [英] How to reshape a multi-column dataframe by index?
本文介绍了如何通过索引重塑多列数据框?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
根据此处.该解决方案仅适用于一列.如何改进多列解决方案.即如果我有一个像
Following from here . The solution works for only one column. How to improve the solution for multiple columns. i.e If I have a dataframe like
df= pd.DataFrame([['a','b'],['b','c'],['c','z'],['d','b']],index=[0,0,1,1])
0 1
0 a b
0 b c
1 c z
1 d b
如何像
0 1 2 3
0 a b b c
1 c z d b
如果df是
0 1
0 a b
1 c z
1 d b
然后
0 1 2 3
0 a b NaN NaN
1 c z d b
推荐答案
使用flatten/ravel
In [4401]: df.groupby(level=0).apply(lambda x: pd.Series(x.values.flatten()))
Out[4401]:
0 1 2 3
0 a b b c
1 c z d b
或者,stack
In [4413]: df.groupby(level=0).apply(lambda x: pd.Series(x.stack().values))
Out[4413]:
0 1 2 3
0 a b b c
1 c z d b
而且索引不相等
In [4435]: df.groupby(level=0).apply(lambda x: x.values.ravel()).apply(pd.Series)
Out[4435]:
0 1 2 3
0 a b NaN NaN
1 c z d b
这篇关于如何通过索引重塑多列数据框?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文