Rya*_*ool 4 python excel pandas
我需要将数据文件从多行,几列到一行多列"展平".
我目前在pandas中有一个数据帧(从Excel加载),最终需要改变数据的显示方式,这样我就可以以逻辑方式累积大量数据.下表是试图说明我的要求.
从:
1 2
Ryan 0.706 0.071
Chad 0.151 0.831
Stephen 0.750 0.653
Run Code Online (Sandbox Code Playgroud)
至:
1_Ryan 1_Chad 1_Stephen 2_Ryan 2_Chad 2_Stephen
0.706 0.151 0.75 0.071 0.831 0.653
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
一行,为了好玩
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
Run Code Online (Sandbox Code Playgroud)
让我们使用stack
,swaplevel
,to_frame
,和T
:
df_out = df.stack().swaplevel(1,0).to_frame().T.sort_index(axis=1)
Run Code Online (Sandbox Code Playgroud)
或者更好的是,(使用@piRSquared unstack解决方案)
df_out = df.unstack().to_frame().T
df_out.columns = df_out.columns.map('{0[0]}_{0[1]}'.format)
df_out
Run Code Online (Sandbox Code Playgroud)
输出:
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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
117 次 |
最近记录: |