如何通过索引重塑多列数据框?
发布于 2021-01-29 15:05:20
从这里开始。该解决方案仅适用于一列。如何改进多列解决方案。即如果我有一个像
df= pd.DataFrame([['a','b'],['b','c'],['c','z'],['d','b']],index=[0,0,1,1])
0 1
0 ab
0公元前
1立方厘米
1分贝
如何重塑像
0 1 2 3
0 abbc
1捷克克朗
如果df是
0 1
0 ab
1立方厘米
1分贝
然后
0 1 2 3
0 ab NaN NaN
1捷克克朗
关注者
0
被浏览
49
1 个回答
-
采用
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