route_number source_id latitude_value longitude_value no_of_stores
r1 676 28.15085 32.66055 23
r2 715 28.2160253 32.5214831 23
r3 345 28.2123115 32.537211 22
r4 150 28.23009 32.50323 23
r5 534 28.0949248 32.8075467 21
r6 1789 28.2204214 32.5035782 22
r7 647 28.21548 32.50238 23
r8 667 28.21132 32.51481 22
r9 2242 28.2389 32.5 19
r10 797 28.161657 32.8416816 20
r11 1097 28.1792849 32.8255522 19
r12 591 28.2513623 32.7638247 22
r13 1091 28.251208 32.7808329 21
r14 1267 28.2102213 32.8129836 21
r15 1016 28.1654648 32.8350845 19
r16 785 28.0786012 32.9513468 4
r17 1072 28.1701673 32.8382309 1
上面提到的是我正在处理的数据帧。 如你所见,没有。 route_number中的商店不同。
在这种情况下,mean(no_of_stores)= 20
我在寻找的是,
取决于 source_id 的地理位置(纬度和经度值),我想将多个彼此靠近的路线合并为1,以便新组中的 no_of_stores 等分。
可以排除彼此靠近的路线的状况,并且仅合并具有较小的路线的路线。也可以将商店分成1个。
即彼此更接近的路线(并且no_of_stores小于平均值(no_of_stores)),将它们组合成一条大路线,使得在形成的新路线中的 no_of_stores 是< no_of_stores列的strong> mean ,以防大约为19。
最终输出预期如下:(不是实际的)
route_number new_route_no
r1 A1 #since its already has stores greater than mean
r2 A2
r3 A3
r4 A4
....................
r9 A9 #(19 stores)
r17 A9 #(1 stores) total 20
....................
r11 A11
r16 A11
r15 A15 #19 stores , since it cannot be combined further,keep as it is
我尝试过使用pandas groupby和聚合方法,但无法找到转换此数据帧的方法,
任何线索都会有所帮助。