首页 > 解决方案 > 如何在不使用熊猫的情况下将行从csv分组到列表中

问题描述

我有一个看起来像这样的csv,

#cars.csv
Bugatti, Veyron 
Bugatti, Chiron
VW, Golf
VW, Passat
VW, Polo
VW, Caddy
Opel, Insignia

我想创建两个单独的列表,如下所示:

brands = ["Bugatti","VW","Opel"]

models = [["Veyron","Chiron"],
          ["Golf","Passat","Polo","Caddy"],
          ["Insignia"]]

没有熊猫有什么可能的方法吗?我在导入熊猫时遇到了麻烦,所以我正在寻找一种替代方法。感谢所有帮助!

标签: pythonlistcsvgroup-by

解决方案


from collections import defaultdict

def parse(file, delimiter=', '):
    with open(file) as f:
        result = defaultdict(list)
        for line in f.readlines():
            brand, model = line.split(delimiter)
            result[brand].append(model)
        return result

result = parse('cars.csv')

# fit the special data format
brands = list(result.keys())
models = [result[key] for key in brands]

如果您有任何问题,请告诉我。


推荐阅读