可以使用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文件路径。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何在Python中对CSV进行多列排序 - Python技术站