经过一些聚合和其他操作后,我得到了一个熊猫df,看起来像这样:
但是,我试图将相同的信息转换为不同的格式,该格式将所有信息合并在一行中,并具有以下列名:
cols = [amin_qcut0, amax_qcut0, mean_qcut0, amin_qcut1, amax_qcut1, mean_qcut1, amin_qcut2, amax_qcut2, mean_qcut2]
以及与表中的值相对应的值。有没有办法使用df.iterrows()做到这一点?
谢谢
答案 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