我有一个需要旋转的数据框(不知道这是否涉及堆叠或旋转。)
因此,在“年”,“月”和“组”列中有重复值的地方,我想将以下列名移动为变量
因此,如果这是原始DF:
Year Month Group Variable feature1 feature2 feature3
2010 6 1 1 12 23 56
2010 6 1 2 34 56 25
结果将是:
Year Month Group Variable1 feature1_1 feature2_1 feature3_1 Variable2 feature1_2 feature2_2 feature3_2
2010 6 1 1 12 23 56 2 34 56 25
我正在寻找符合以下条件的东西-非常感谢您提供任何提示/帮助,
谢谢
晕动
答案 0 :(得分:2)
IIUC,如果要将其从长转换为宽,可以使用cumcount
获取addtional
键,然后进行整形。(请注意wide_to_long
的反向键)>
df['New']=(df.groupby(['Year','Month','Group']).cumcount()+1).astype(str)
w=df.set_index(['Year','Month','Group','New']).unstack().sort_index(level=1,axis=1)
w.columns=pd.Index(w.columns).str.join('_')
w
Out[217]:
Variable_1 feature1_1 feature2_1 feature3_1 Variable_2 \
Year Month Group
2010 6 1 1 12 23 56 2
feature1_2 feature2_2 feature3_2
Year Month Group
2010 6 1 34 56 25