在 pandas 中重新排列行和列

Rearrange row and column in pandas

我正在使用这个数据框:

Letter  D1  D2  D3  D4
a       2   7   8   9
b       3   4   7   2      
c       1   1   3   12
d       7   8   10  19

我怎样才能做到这一点:

letter  Location value
a       D1       2
a       D2       7
a       D3       8
a       D4       9
b       D1       3
b       D2       4
b       D3       7
b       D4       2
c       D1       1
c       D2       1
c       D3       3
c       D4       12
d       D1       7
d       D2       8
d       D3       10
d       D4       19
df.melt('Letter', var_name='Location').sort_values('Letter')

使用拆栈 & set_index:

df1 = df.set_index('Letter').unstack().reset_index(name='value').sort_values('Letter')\
.reset_index().drop(columns='index')\
.rename(columns = {'level_0':'Location'})