我需要按用户ID升序组织CSV文件。该CSV文件有一个标题,我想保留在文档的顶部。标题下面有13500行数据
User_ID;firstname;lastname;location
我现在的代码省略了标题,如果我删除heading=next(csv_reader)
行,它会把标题放在文档的底部。
当前输出也没有将它们按正确顺序排列,而是从ID的第一个值开始,而不是整数(ID=13000在ID=2000之前,一直到9999)
import csv
import operator
file = open("file.csv", 'r')
csv_reader = csv.reader(file, delimiter=';')
heading=next(csv_reader)
sort = sorted(csv_reader, key=operator.itemgetter(0))
for eachline in sort:
print(eachline)
2条答案
按热度按时间n7taea2i1#
当前的排序是在lexical order中进行的,因为CSV文件的元素是 * string *。如果要将它们作为整数排序,请在
sorted
调用中使用key
函数将它们转换为整数。我使用lambda而不是
operator.itemgetter(0)
,因为我们无论如何都需要转换为int
,这是最方便的方法。要打印带有数据的页眉,请在打印数据之前打印页眉:
46qrfjad2#
您也可以使用
pandas
实现此功能: