python - 如何在不使用熊猫的情况下将行从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"]]
没有熊猫有什么可能的方法吗?我在导入熊猫时遇到了麻烦,所以我正在寻找一种替代方法。感谢所有帮助!
解决方案
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]
如果您有任何问题,请告诉我。
推荐阅读
- autohotkey - 使用 ControlClick 和 WinTitle 的问题
- wordpress - wordpress 在将文本显示给浏览器之前替换文本
- cypress - 赛普拉斯:如果未找到来自“cy.route()”的请求,则测试失败
- javascript - 角反应形式日期设定值
- flutter - 在 Flutter 中,如何使用 WebView 制作简单的浏览器小部件?
- r - 将大型数据集从长转换为宽(450 多个值变量)
- rdf - Semantic Web - Turtle 和 JSON-LD 是一回事吗 - 一种保存 RDF 的方法
- python - Python math.log 函数数学域错误
- android - 使用数据绑定在片段活动中映射片段?
- c# - Opencvsharp4.windows 'OpenCvSharp.Mat' 的类型初始化程序抛出异常。创建安装文件后收到此错误