问:Python(熊猫或其他) - 我需要从多行、几列到 1 行多列"flatten"数据文件



我需要将数据文件从多行、几列"展平"到 1 行多列。

我目前在熊猫中有一个数据帧(从 Excel 加载(,最终需要更改数据的显示方式,以便我可以以逻辑方式积累大量数据。下表试图说明我的要求。

从:

1      2
Ryan     0.706  0.071
Chad     0.151  0.831
Stephen  0.750  0.653

自:

1_Ryan  1_Chad  1_Stephen  2_Ryan  2_Chad  2_Stephen
0.706   0.151   0.75       0.071   0.831   0.653

感谢您的任何帮助!

一行,为了好玩

df.unstack().pipe(
lambda s: pd.DataFrame([s.values], columns=s.index.map('{0[0]}_{0[1]}'.format))
)
1_Ryan  1_Chad  1_Stephen  2_Ryan  2_Chad  2_Stephen
0   0.706   0.151       0.75   0.071   0.831      0.653

让我们使用stackswaplevelto_frameT

df_out = df.stack().swaplevel(1,0).to_frame().T.sort_index(axis=1)

或者更好的是,(使用@piRSquared解栈解决方案(

df_out = df.unstack().to_frame().T
df_out.columns = df_out.columns.map('{0[0]}_{0[1]}'.format)
df_out

输出:

1_Chad  1_Ryan  1_Stephen  2_Chad  2_Ryan  2_Stephen
0   0.151   0.706       0.75   0.831   0.071      0.653

最新更新