使用选定列堆栈pandas数据框

时间:2014-10-28 21:36:58

标签: python pandas stack

我有一个像这样的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命令无法以正常方式执行此操作。 对这个问题有什么看法吗?

1 个答案:

答案 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