关键词

如何在Python中对CSV进行多列排序

可以使用Python的内置库csv和operator来对CSV进行多列排序。

首先,我们需要读取CSV文件并将其转换为list对象:

import csv

with open('data.csv', 'r') as file:
    reader = csv.reader(file)
    data = list(reader)

接下来,我们可以使用sorted()函数以及operator库中的itemgetter()函数来对多列进行排序。假设我们要按照第一列升序排列,第二列降序排列:

import operator

sorted_data = sorted(data, key=operator.itemgetter(0, 1), reverse=(False, True))

在调用sorted()函数时,key参数传入一个lambda函数或operator.itemgetter()函数来指定排序规则。其中,operator.itemgetter()函数可以接受多个参数,用于指定排序的列。reverse参数用于指定排序的顺序,True为降序,False为升序。

最后,我们可以将排好序的数据写回CSV文件中:

with open('sorted_data.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    writer.writerows(sorted_data)

完整的代码实现如下:

import csv
import operator

with open('data.csv', 'r') as file:
    reader = csv.reader(file)
    data = list(reader)

sorted_data = sorted(data, key=operator.itemgetter(0, 1), reverse=(False, True))

with open('sorted_data.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    writer.writerows(sorted_data)

其中,'data.csv'为原始的CSV文件路径,'sorted_data.csv'为排序后的CSV文件路径。

本文链接:http://task.lmcjl.com/news/17363.html

展开阅读全文