1 回答

TA貢獻1887條經驗 獲得超5個贊
嘗試這個:
df_out = (df.set_index(['Node', df.groupby('Node').cumcount()])[['dx', 'dy', 'dz']]
.unstack().sort_index(level=1, axis=1))
df_out.columns = [f'{i}{j}' for i, j in df_out.columns]
df_out
輸出:
dx0 dy0 dz0 dx1 dy1 dz1 dx2 dy2 dz2
Node
1 3.385000e-07 0.0 1.636000e-07 0.0 0.0 0.0 -1.334000e-07 -2.684000e-07 -0.000022
5 1.926000e-07 0.0 -2.247000e-08 0.0 0.0 0.0 2.315000e-07 -2.684000e-07 -0.00003
將 cumcount 加 + 1:
df_out = (df.set_index(['Node', df.groupby('Node').cumcount() + 1])[['dx', 'dy', 'dz']]
.unstack().sort_index(level=1, axis=1))
df_out.columns = [f'{i}{j}' for i, j in df_out.columns]
df_out
輸出:
dx1 dy1 dz1 dx2 dy2 dz2 dx3 dy3 dz3
Node
1 3.385000e-07 0.0 1.636000e-07 0.0 0.0 0.0 -1.334000e-07 -2.684000e-07 -0.000022
5 1.926000e-07 0.0 -2.247000e-08 0.0 0.0 0.0 2.315000e-07 -2.684000e-07 -0.000036
添加回答
舉報