Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
一旦SQL数据在python中出现,我如何排序和使用它?_Python_Sql Server_Pandas_Sorting_Iterator - Fatal编程技术网

一旦SQL数据在python中出现,我如何排序和使用它?

一旦SQL数据在python中出现,我如何排序和使用它?,python,sql-server,pandas,sorting,iterator,Python,Sql Server,Pandas,Sorting,Iterator,我正在将大量数据从SQLServer导入python进行数学分析。我已经使用pandas成功地导入了它,但是我无法用python找到一种方法来按照我想要的方式对它进行排序。 我正在导入的数据具有以下格式 pick # X Y 00006630519697559571 1 1572.0000000 255.0000000 00006630519697559571 2 1642.0000000

我正在将大量数据从SQLServer导入python进行数学分析。我已经使用pandas成功地导入了它,但是我无法用python找到一种方法来按照我想要的方式对它进行排序。 我正在导入的数据具有以下格式

        pick            #         X              Y
00006630519697559571    1   1572.0000000    255.0000000
00006630519697559571    2   1642.0000000    189.0000000
00006630519697559571    3   1717.0000000    279.0000000
00006630519697559571    4   1326.0000000    337.0000000
00006630519697571696    1   1290.0000000    87.0000000
00006630519697571696    2   1806.0000000    133.0000000
00006630519697571696    3   1431.0000000    214.0000000
00006630519697571696    4   1431.0000000    226.0000000

我所做的是使用python对每个拾取中所有项之间的驱动距离求和,这是我能够为单个拾取所做的。不过,我遇到的问题是,我需要对所有拾取分别执行相同的操作(大约有12700个拾取),但我不知道如何按拾取分离数据,然后对每个集合执行必要的计算。在此问题上的任何帮助都将不胜感激,谢谢。

在导入数据之前,您可以在sql server中执行此操作,这应该比使用pandas要快得多。 在将“TABLENAME”替换为要查询的表的名称后,只需对服务器执行以下SQL语句

SELECT pick, SUM(X), SUM(Y)
FROM TABLENAME
GROUP BY pick;
如果你不想这样做,你也可以用熊猫做一个小组


df.groupby(['pick']].sum()

如果我只是将x和y值相加,这会起作用,但实际上我有一个完整的python代码,用于通过定义的网格系统计算从一点到另一点的行驶距离。在这种情况下,既然你说你已经有了一个函数来为一个
pick
执行这个操作,你应该能够使用
df.groupby(['pick'])。apply()
为每个分组执行你的函数。您可以在此处阅读更多有关内容: