我想按日期对CSV表进行排序。一开始是一个简单的任务:
import sys
import csv
reader = csv.reader(open("files.csv"), delimiter=";")
for id, path, title, date, author, platform, type, port in reader:
print date
我使用Python的CSV模块读入了一个具有该结构的文件:
id;file;description;date;author;platform;type;port
- 日期是ISO-8601,因此我可以很容易地对它进行排序,而无需解析:2003年4月22日
- 我想按日期排序,最新的条目排在最前面
- 我怎样才能让这个阅读器进入一个可排序的数据结构呢?我想通过一些努力,我可以创建一个日期列表:datelist += date,split and sort.但是我必须重新识别CSV表中的完整条目.这不仅仅是对列表中的内容进行排序.
- csv似乎没有内置排序功能
最好的解决方案是有一个CSV客户端,像数据库一样处理文件。
我希望有人知道一些很好的排序魔术在这里;)
5条答案
按热度按时间toe950271#
或使用lambda
8ljdwjyq2#
按MULTIPLE COLUMN排序(先按
column_1
排序,再按column_2
排序)eqfvzcg83#
读取器的作用就像一个生成器。在一个带有一些假数据的文件上:
如Ignacio所示使用运算符.itemgetter:
xkftehaa4#
对于按列对csv进行排序,我将使用类似于以下内容的代码
rks48beu5#
你可以用Pandas来做,而且很容易
sort_values方法返回一个新的 Dataframe ,因此确保将其分配给一个新变量。