我在MySQL中有这样的数据(示例):
表1:
ID ITEM CNT
--------------------
0001 AAB 5
0001 BBA 3
0001 BBB 8
0001 AAC 10
0002 BBA 2
0002 BBC 7
0003 FFG 2
0003 JPO 4
0003 PUI 22
..........
我想找到一种方法,以计数向量的形式在Python中导入这些数据,例如:
0001 = [5,10,3,8,0,0,0,0]
0002 = [0,0,2,0,7,0,0,0]
0003 = [0,0,0,0,0,0,4,22]
其中元素表示此表单中每个id的所有项目的计数:[AAB、AAC、BBA、BBB、BBC、FFG、JPO、PUI]
所以我想问,什么是最好和最有效的方式来实现这一点?从python还是mysql来做比较好?怎么做?你知道吗
谢谢
在可能的情况下,用SQL而不是Python来操作数据通常效率更高。你知道吗
使用此设置:
您可以通过以下方式形成所需的SQL:
像这样使用:
使用的SQL查询是:
结果是:
我知道你要求的
但这至少有两个问题。首先,
0001
不是有效的Python变量名。变量名不能以数字开头。第二,您不希望动态定义变量名,因为很难使用运行时才知道的裸变量名进行编程。你知道吗相反,在dict中使用可能的变量名作为键,
result
。然后可以用result['0001']
引用“变量”0001
。你知道吗您可以通过交叉表查询进行访问,其中行标题是id,列标题是item,cnt是要聚合的值。然后,您可以循环通过每一行的每一列来获得向量。有关交叉表查询的帮助,请参见此处:http://allenbrowne.com/ser-67.html
相关问题 更多 >
编程相关推荐