Разделить CSV на более мелкие файлы на основе значений нескольких строк с R или Python

Я думаю, ваша проблема в том, что вы ищете в слишком широком радиусе. Согласно документации MongoDB , правильный синтаксис $centerSphere:

db..find( {
    loc: { $geoWithin: 
     { 
        $centerSphere: [ [ ,  ],
        /3963.2 ] } 
     }
} )

Теперь вы ищете точки в радиусе 29153.88048637637 миль вокруг вашей точки, и обе точки в этом радиусе вокруг центра, который вы определили.

Надеюсь, это поможет вам:)

0
задан d.b 15 January 2019 в 20:10
поделиться

2 ответа

В 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
0
ответ дан Scott Boston 15 January 2019 в 20:10
поделиться

В 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)
})
0
ответ дан d.b 15 January 2019 в 20:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: