0

代理店の名前と住所が記載されたCSVを持っています。同じアドレス(具体的には同じ郵便番号)の代理店名の文字列が必要な場合、RまたはPythonでそれを行うにはどうすればよいですか?どちらの方法が最も効率的であるかが望ましいですが、私はまだ両方を学んでいます。Google Refineは、すでに各郵便番号クラスターの数を教えてくれましたが、どの機関がそれらの郵便番号に対応しているかを知る必要があります。

PS。はい、私は郵便番号を頼りにするのは良くないことを知っています。これのポイントはそれを説明することです。

入力データの例:

ここに画像の説明を入力してください

最終出力(後でシェープファイルとマージされます):

ここに画像の説明を入力してください

4

2 に答える 2

5

辞書を作成できるはずです。

import csv

from collections import defaultdict

agencies = defaultdict(list)

with open('file.csv', 'r') as handle:
    reader = csv.reader(handle)

    for row in reader:
        agencies[row[2]].append(row[0])

現在、agencies郵便番号の代理店へのマッピングが含まれています。

于 2012-12-10T19:13:29.240 に答える
2

シミュレートされたデータを使用したRソリューションの大まかなスケッチを次に示します。

set.seed(123)
dat <- data.frame(agency = sample(letters[1:15],100,replace = TRUE),
                  zipcode = sample(15,100,replace = TRUE))

head(dat)

#A base R solution
aggregate(dat$agency,
          by = list(dat$zipcode),
          FUN = function(x){paste(x,collapse = ",")})

#Or using the populat plyr package
library(plyr)
ddply(dat,
      .(zipcode),
      summarise,
      agencies = paste(agency,collapse = ","))

データのスクリーンショットは、通常、表示するのに最も役立つものではありません。完全で最小限の再現可能な例により、より直接的に役立つより完全な回答が可能になります。(そして、あなたの側でのフォローアップの質問が少なくなります。)

于 2012-12-10T20:34:34.277 に答える