根据列均值和地理位置对数据帧的行进行分组

时间:2017-11-28 08:34:53

标签: pandas

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和聚合方法,但无法找到转换此数据帧的方法,

任何线索都会有所帮助。

0 个答案:

没有答案