转换Pandas将DataFrame堆叠到Matrix

时间:2016-04-06 19:09:16

标签: python pandas

最终我必须对我的数据集执行矩阵运算。

我想弄清楚的是如何获取堆积数据(特别是来自SQL)并将其转换为矩阵? (它可以是2d numpy数组)。

假设我的SQL查询返回了类似的东西:

Name Data         Value 
a    2016-05-01   5
b    2016-05-01   7
c    2016-05-01   7
a    2016-06-01   4
b    2016-06-01   3
c    2016-06-01   2
d    2016-06-01   2

我正在寻找的输出是

Data/Name    a   b   c   d
2016-05-01   5   7   7   NaN
2016-06-01   4   3   2   2

我知道我可以遍历所有值,但我在这里寻找的是性能。是否有更直接/快速/ pythonic的方式?

1 个答案:

答案 0 :(得分:1)

对您的DataFrame使用函数pivot

对于给定的df

df
Out[19]: 
  Name        Data  Value
0    a  2016-05-01      5
1    b  2016-05-01      7
2    c  2016-05-01      7
3    a  2016-06-01      4
4    b  2016-06-01      3
5    c  2016-06-01      2
6    d  2016-06-01      2

通过在原始DataFrame中设置要使用的索引和列来调用pivot

df.pivot('Data', 'Name')
Out[20]: 
           Value               
Name           a    b    c    d
Data                           
2016-05-01   5.0  7.0  7.0  NaN
2016-06-01   4.0  3.0  2.0  2.0