该pd.wide_to_long
函数几乎完全针对这种情况而构建,在这种情况下,您有许多相同的变量前缀以不同的数字后缀结尾。唯一的区别是您的第一组变量没有后缀,因此您需要首先重命名列。
唯一的问题pd.wide_to_long
是,它必须具有一个标识变量i
,这与不同melt
。reset_index
用于创建一个唯一标识的列,稍后将其删除。我认为这种情况将来可能会得到纠正。
df1 = df.rename(columns={'A':'A1', 'B':'B1', 'A1':'A2', 'B1':'B2'}).reset_index()
pd.wide_to_long(df1, stubnames=['A', 'B'], i='index', j='id')\
.reset_index()[['A', 'B', 'id']]
A B id
0 1 2 1
1 5 6 1
2 9 10 1
3 3 4 2
4 7 8 2
5 11 12 2
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句