s=df.stack().reset_index(name='a').sort_values('level_1').groupby('a')['level_1'].agg(list)
df1 = pd.DataFrame(s.tolist(), index=s.index).T
print (df1)
a a b c d e f
0 1 1 1 1 3 2
1 3 3 2 4 4 None
2 None 4 None None None None
df2 = df.stack().reset_index(name='a').sort_values('level_1')
df2['g'] = df2.groupby('a').cumcount()
df2 = df2.pivot('g','a','level_1')
print (df2)
a a b c d e f
g
0 1 1 1 1 3 2
1 3 3 2 4 4 NaN
2 NaN 4 NaN NaN NaN NaN
使用^{} 和^{} 进行重塑,然后使用^{} 和聚合
list
,最后使用转置构造函数创建DataFrame
:或使用^{} 作为计数器,并通过^{} 重塑形状:
最后,如有必要,请删除索引和列名:
相关问题 更多 >
编程相关推荐