将pandas df表转换或重塑为向量并重命名列

时间:2019-07-15 13:52:50

标签: python pandas

经过一些聚合和其他操作后,我得到了一个熊猫df,看起来像这样: enter image description here

但是,我试图将相同的信息转换为不同的格式,该格式将所有信息合并在一行中,并具有以下列名:

cols = [amin_qcut0, amax_qcut0, mean_qcut0, amin_qcut1, amax_qcut1, mean_qcut1, amin_qcut2, amax_qcut2, mean_qcut2]

以及与表中的值相对应的值。有没有办法使用df.iterrows()做到这一点?

谢谢

1 个答案:

答案 0 :(得分:2)

尝试一下,不需要迭代使用数据帧重塑:

#Create dummy dataframe
df = pd.DataFrame(np.arange(9).reshape(-1,3), columns=['amin','amax','mean'])
df.index.name='qcut'

#Use unstack to reshape dataframe with T from transpose
df_out = df.unstack().to_frame().T.sort_index(level=1, axis=1)
#Flatten multiindex column header created from unstack
df_out.columns = [f'{i}_{j}' for i, j in df_out.columns]
#Show output
df_out

输出:

   amax_0  amin_0  mean_0  amax_1  amin_1  mean_1  amax_2  amin_2  mean_2
0       1       0       2       4       3       5       7       6       8