可以首先從index
創建MultiIndex
與unstack
:
df.index = df.index.str.split('_', expand=True)
df1 = df.unstack(0)
df1.columns = ['_'.join((x[1], x[0])) for x in df1.columns]
print (df1)
x_sec01 y_sec01 x_sec02 y_sec02 x_sec03 y_sec03 x_sec04 y_sec04 \
data 0 0 0 0 0 0 0 0
x_sec05 y_sec05 ... x_sec12 y_sec12 x_sec13 y_sec13 \
data 0 0 ... 0 0 0.557336 3.212005
x_sec14 y_sec14 x_sec15 y_sec15 x_sec16 y_sec16
data 0.604719 2.692938 0.73346 2.650384 1.019466 3.085967
[1 rows x 32 columns]
與concat
另一種解決方案:
df1 = pd.concat([df.loc['x_data'],df.loc['y_data']],keys=('x', 'y')).to_frame().sort_index(1)
df1.index = ['_'.join(x) for x in df1.index]
print (df1.T)
x_sec01 y_sec01 x_sec02 y_sec02 x_sec03 y_sec03 x_sec04 y_sec04 \
0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
x_sec05 y_sec05 ... x_sec12 y_sec12 x_sec13 y_sec13 x_sec14 \
0 0.0 0.0 ... 0.0 0.0 0.557336 3.212005 0.604719
y_sec14 x_sec15 y_sec15 x_sec16 y_sec16
0 2.692938 0.73346 2.650384 1.019466 3.085967
[1 rows x 32 columns]
謝謝主席先生,你是一個真正的天才。 我想這是格式x_sec01,y_sec01,x_sec02,y_sec02哪一部分我需要改變呢? – thirteenmac
@thirteenmac我相信我已經做了編輯。 – piRSquared
哦,明白了,它工作的很棒! – thirteenmac