【问题标题】:Count multiple occurrences in imported .csv file在导入的 .csv 文件中计算多次出现
【发布时间】:2014-09-30 20:51:28
【问题描述】:

从一个大型导入数据集开始,我试图识别并打印与至少有 2 所独特学院/大学的城市相对应的每一行。

到目前为止(相关代码):

for line in file:

    fields = line.split(",")
    ID, name, city = fields[0], fields[1], fields[3]
    count = line.count()

if line.count(city) >= 2:
    if line.count(ID) < 2:
    print "ID:", ID, "Name: ", name, "City: ", city

换句话说,我希望能够消除 1) 任何重复的学校列表(按 ID - 此文件有许多重复出现的机构),2) 任何没有两个或更多机构的城市。

谢谢!

【问题讨论】:

  • 尝试利用 collections.Counter(yourRowOfColumnsFromTheFile).most_common(2)
  • 谢谢!采用不同的方法,但我会记住这一点。

标签: python csv if-statement count field


【解决方案1】:

当您想通过某个键对数据进行排序时,dicts 会派上用场。在您的情况下,首先按城市索引然后按 ID 索引的嵌套字典应该可以解决问题。

# will hold cities[city][ID] = [ID, name, city]
cities = {}

for line in file:
    fields = lines.split()
    ID, name, city = fields
    cities.setdefault(name, {})[ID] = fields

# 'cities' values are the IDs for that city. make a list if there are at least 2 ids
multi_schooled_cities = [ids_by_city.values() for ids_by_city in cities.values() if len(ids_by_city) >= 2]

【讨论】:

    猜你喜欢
    • 2022-01-18
    • 1970-01-01
    • 2016-08-22
    • 1970-01-01
    • 2017-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多