在R或Python中列出具有相同值的CSV单元格?

2024-04-26 20:20:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个CSV,上面有机构名称和地址。如果我想要一个地址相同(特别是相同的邮政编码)的机构名称字符串,如何在R或Python中做到这一点?无论哪种方法最有效都是最好的,但我仍在学习这两种方法。googlerefine已经给了我每个邮政编码集群的数量,但是我只需要知道哪些代理对应于这些zip。在

是的,我知道邮政编码不好依赖,这是为了说明这一点。在

输入数据示例:

enter image description here

最终输出(稍后与shapefile合并):

enter image description here


Tags: csv数据方法字符串示例代理数量地址
2条回答

你应该能够构建一个字典:

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包含一个邮政编码到代理的映射。在

下面是一个使用模拟数据的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 = ","))

数据的屏幕截图通常不是最有用的显示内容。一个完整的,最小的可重复的例子将允许更完整的答案,更直接的帮助。(从而减少了你的后续问题。)

相关问题 更多 >