将m,n数据帧转换为x,x数据帧?

时间:2018-01-23 20:41:19

标签: python pandas

我有一个如下所示的数据框。它是带有值的9,3数据帧。

col1 col2 val
a   b     15
a   c     19
a   a     20
b   a     15
b   b     55 
b   c     16
c   a     19
c   b     16
c   c     5

我想要一些东西3,3数据帧。

  a   b   c
a 20  15   19
b  .   .   .
c  .    .    .

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

听起来你需要pivot。除了大熊猫文档之外的更多说明,我非常喜欢这篇名为Reshaping in Pandas - Pivot, Pivot-Table, Stack and Unstack explained with Pictures

的博客文章
>>> data
[['a', 'b', 15], ['a', 'c', 19], ['a', 'a', 20], ['b', 'a', 15], ['b', 'b', 
55], ['b', 'c', 16], ['c', 'a', 19], ['c', 'b', 16], ['c', 'c', 5]]
>>> df = pd.DataFrame(data=data, columns=['col1', 'col2', 'val'])
>>> df
  col1 col2  val
0    a    b   15
1    a    c   19
2    a    a   20
3    b    a   15
4    b    b   55
5    b    c   16
6    c    a   19
7    c    b   16
8    c    c    5
>>> df.pivot(index='col1', columns='col2',  values='val')
col2   a   b   c
col1
a     20  15  19
b     15  55  16
c     19  16   5