我有一个像这样的Pandas数据框:
user 1 2 3 4 ... N
u1 0.2 0.11 0.1 0.4 0.5
u2 0.1 0.3 0.15 0.2 ... 0.2
。 。 。
我想把它堆叠成这种形式:
user site value
u1 1 0.2
u1 2 0.11
u1 3 0.1
。 。
u2 1 0.1
Stack命令无法以正常方式执行此操作。 对这个问题有什么看法吗?
答案 0 :(得分:0)
pandas.melt()
这样做:
df
Out[3]:
user 1 2 3 4
0 u1 0.2 0.11 0.10 0.4
1 u2 0.1 0.30 0.15 0.2
pd.melt(df, id_vars='user', var_name='site', value_name='value')
Out[4]:
user site value
0 u1 1 0.20
1 u2 1 0.10
2 u1 2 0.11
3 u2 2 0.30
4 u1 3 0.10
5 u2 3 0.15
6 u1 4 0.40
7 u2 4 0.20