我现在有一些代码可以正常工作,但速度太慢了。我试图把数据帧中每一行的加权平方和相加。我想对操作进行矢量化——这似乎运行得更快、更快——但代码中有一个折痕挫败了我对矢量化的尝试
totalDist = 0.0
for index, row in pU.iterrows():
totalDist += (row['distance'][row['schoolChoice']]**2.0*float(row['students']))
该行有“students”(一个整数)、distance(一个长度为n的numpy数组)和schoolChoice(一个小于或等于n-1的整数,用于指定我在计算距离数组中使用的元素)。基本上,我从numpy数组中提取特定于行的值。我已经使用了df.lookup,但实际上它似乎比较慢,并且已经被弃用了。有什么建议可以让它跑得更快吗?提前谢谢
如果所有其他操作都失败,您可以在每一行上使用
.apply()
要加快速度,您可以导入
numpy
numpy方法要求每行的距离长度相同,但是如果需要,可以将它们填充到相同的长度。(尽管这可能会影响任何收益。)
在150000行df上测试,如:
时间:
相关问题 更多 >
编程相关推荐