重塑融化的熊猫数据帧

时间:2017-08-23 06:35:27

标签: python pandas dataframe

我正在尝试从另一个question重塑一个融化的数据框。截至目前,这就是我所拥有的:

    col1  variable  value
0    A     col2      1
1    B     col2      2
2    A     col2      3
3    B     col2      3
4    A     col3      5
5    B     col3      4
6    A     col3      6
7    B     col3      5

我想把它变成类似的东西:

  col1 variable value1 value2
0    A     col2   1    3
1    A     col3   5    6 
2    B     col2   2    3
3    B     col3   4    5

要理解这种重新排序背后的逻辑,这就是原始数据框的样子,排序:

  col1 variable  value
0    A     col2      1 \   1 (value1 = 1, value2 = 3)
2    A     col2      3 /
4    A     col3      5 \   2 (value1 = 5, value2 = 6)
6    A     col3      6 /
1    B     col2      2 \   3 (value1 = 2, value2 = 3)
3    B     col2      3 /
5    B     col3      4 \   4 (value1 = 4, value2 = 5)
7    B     col3      5 /

我想做的事情就像重塑一样。

我相信这会与pivotpivot_table有关,但我不确定......我该怎么做?

1 个答案:

答案 0 :(得分:1)

使用groupby

的一种方法
In [589]: (df.groupby(['col1', 'variable']).value.apply(list)
             .apply(pd.Series)
             .rename(columns=lambda x: 'value{}'.format(x+1))
             .reset_index())
Out[589]:
  col1 variable  value1  value2
0    A     col2       1       3
1    A     col3       5       6
2    B     col2       2       3
3    B     col3       4       5