用Python写一段代码,假设CSV文件名为 data.csv,其中包含以下列:code,line,violation,读取violation中的字符,把相同字符的记录提取出来并且根据他们的line值按顺序排列
时间: 2023-11-28 13:50:34 浏览: 68
用python给csv里的数据排序的具体代码
5星 · 资源好评率100%
以下是读取并处理 data.csv 文件的 Python 代码,实现了按照 violation 列的值进行分组,并在每个分组中按照 line 列的数值进行排序:
```python
import csv
# 读取 data.csv 文件
with open('data.csv', newline='') as csvfile:
reader = csv.DictReader(csvfile)
# 创建空字典,用于存储不同 violation 值对应的记录
grouped_records = {}
for row in reader:
# 获取当前记录的 violation 和 line 列的值
violation = row['violation']
line = int(row['line'])
# 如果当前 violation 值还没有出现过,则在 grouped_records 中创建新的空列表
if violation not in grouped_records:
grouped_records[violation] = []
# 将当前记录添加到对应的 violation 列表中
grouped_records[violation].append(row)
# 对每个 violation 的记录按照 line 值进行排序
for violation, records in grouped_records.items():
sorted_records = sorted(records, key=lambda x: int(x['line']))
print(f'{violation}:')
for record in sorted_records:
print(f' {record["code"]} - line {record["line"]}')
```
此代码首先读取 data.csv 文件,然后对其中的记录按照 violation 值进行分组。对于每个分组,再按照 line 值进行排序,并输出排序结果。
阅读全文