最终我必须对我的数据集执行矩阵运算。
我想弄清楚的是如何获取堆积数据(特别是来自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的方式?
答案 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