【发布时间】:2015-05-07 03:48:28
【问题描述】:
我使用 Python csv 模块将具有多值字段的 csv 转换为 Python list。输出包含具有多个相关值的字段。
['Route', 'Vehicles', 'Vehicle Class', 'Driver_ID', 'Date', 'Start', 'Arrive']
['ABC', 'ZYG098, AB0134, GF0158', 'A1, B2, C3', 'John Doe, Jane Doe, Abraham Lincoln', '20150301', 'A', 'B']
['AC', 'ZGA123', 'C3', 'George Washington', '20150301', 'A', 'C']
['ABC', 'XAZ012, AB0134, YZ089', 'C1, B2, A2 ', 'John Adams, Jane Doe, Thomas Jefferson', '20150302', 'A', 'B']
我想将 Vehicles、Vehicle Class 和 Driver ID 字段转换为嵌套列表,这样如果我对 Vehicle row[1] 中的每个子列表进行排序,以确保车辆始终按字母顺序出现在子列表中,并且车辆类别和驾驶员保持各自正确的顺序。所以标题和第一行子列表的排列方式如下:
['Route', 'Vehicles', 'Vehicle Class', 'Driver_ID', 'Date', 'Start', 'Arrive']
['ABC', 'AB0134, GF0158, ZYG098', 'B2, C3, A1', 'Jane Doe, Abraham Lincoln, John Doe', '20150301', 'A', 'B']
['AC', 'ZGA123', 'C3', 'George Washington', '20150301', 'A', 'C']
['ABC', 'AB0134, YZ089, XAZ012', 'B2, A2, C1', 'Jane Doe, Thomas Jefferson, John Adams', '20150302', 'A', 'B']
因此,在上面的输出中,车辆的每个子组/列表都按字母顺序排序,并且根据需要重新排列车辆类别和驾驶员 ID,以保持它们与各自车辆的原始关系(即驾驶员 ID - John Doe 驾驶Vehicle - ZYG098 是 Vehicle Class - A1,因此这些项目在其子列表中移动以反映 ZYG098 现在是最后一个,而不是第一个)。如果可以做到这一点,您将如何将生成的嵌套列表导出回带有原始标题的 CSV?
抱歉,如果这很简单或荒谬,我刚刚开始学习 Python。如果嵌套列表不是最佳选择,我愿意接受任何其他解决方案(对于字典,我需要加入字段来创建键,因为没有组合 Route_Date 就没有唯一键)。如果有人有可靠的资源来使用 Python 处理各种 CSV 用例,那么推荐会很棒。
提前感谢您的耐心和帮助。
【问题讨论】: