在R或Python中列出具有相同值的CSV单元格?
我有一个CSV代理机构名称和地址。 如果我想要一个具有相同地址(特别是相同的邮政编码)的代理名称的string,我怎么能在R或Python中做到这一点? 无论哪种方式最有效率都是可取的,但我仍然在学习。 Google Refine已经为我提供了每个邮政编码群的统计信息,但是我只需要知道哪些代理机构对应于这些邮政编码。
PS。 是的,我知道邮政编码是不好的依靠; 这一点就是为了说明这一点。
input数据示例:
最终输出(稍后与shapefile合并):
你应该能够构build一个字典:
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解决scheme的粗略草图:
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 = ","))
你的数据的屏幕截图通常不是最有用的东西。 一个完整的,最小可重现的例子将允许更直接有用的更完整的答案。 (并且可以减less你的后续问题。)