Я думаю, ваша проблема в том, что вы ищете в слишком широком радиусе. Согласно документации MongoDB , правильный синтаксис $centerSphere
:
db..find( {
loc: { $geoWithin:
{
$centerSphere: [ [ , ],
/3963.2 ] }
}
} )
Теперь вы ищете точки в радиусе 29153.88048637637 миль вокруг вашей точки, и обе точки в этом радиусе вокруг центра, который вы определили.
Надеюсь, это поможет вам:)
В Python с пандами.
from io import StringIO
import pandas as pd
csvfile=StringIO(""""REG","PROV","COM","AMMOUNT"
1,11,111,213123
1,11,111,645573
1,12,112,545455
1,12,112,167442
1,13,113,767436
1,13,123,231653
1,13,133,124674
2,21,211,876534
2,21,212,439324
2,21,212,872364""")
df=pd.read_csv(csvfile)
for n, g in df.groupby(['REG','PROV','COM']):
g.to_csv('reg-'+str(n[0])+'_prob-'+str(n[1])+'_com-'+str(n[2])+'.csv')
Вывод справочника:
01/15/2019 02:19 PM 61 reg-1_prob-11_com-111.csv
01/15/2019 02:19 PM 61 reg-1_prob-12_com-112.csv
01/15/2019 02:19 PM 42 reg-1_prob-13_com-113.csv
01/15/2019 02:19 PM 42 reg-1_prob-13_com-123.csv
01/15/2019 02:19 PM 42 reg-1_prob-13_com-133.csv
01/15/2019 02:19 PM 42 reg-2_prob-21_com-211.csv
01/15/2019 02:19 PM 61 reg-2_prob-21_com-212.csv
7 File(s) 351 bytes
В R
#DATA
df1 = read.csv(stringsAsFactors = FALSE,
strip.white = TRUE,
header = TRUE,
text =
"REG,PROV,COM,AMMOUNT
1,11,111,213123
1,11,111,645573
1,12,112,545455
1,12,112,167442
1,13,113,767436
1,13,123,231653
1,13,133,124674
2,21,211,876534
2,21,212,439324
2,21,212,872364")
smallFileNames = with(df1, paste(REG, PROV, COM, sep="-"))
splitDF = split(df1, smallFileNames)
lapply(smallFileNames, function(nm){
write.csv(x = splitDF[[nm]], file = paste0(nm, ".csv"), row.names = FALSE)
})