我有一个 3,642,197 行长的 csv 文件,我需要将其从最早日期排序到最晚日期。
我编写了一个搜索数据库的程序,并将包含用户指定的“API”编号的每一行写入一个稍后将用于绘图的文件。最早的日期首先出现在文件中是非常重要的,所以我遇到了这个问题:将这个巨大的文件放在一起的人使用了 excel 中的 3 个不同文件并将其合并到一个 csv 中,所以日期没有排序.
如果我可以格式化数据库以便首先找到所有最早的日期,我认为这将是解决问题的最简单方法。
我对python有点陌生,我正试图围绕如何按日期对这个文件进行排序。我尝试在 excel 和 libreoffice calc 中执行此操作,但它超过了最大行数。
以下是文件中文本的示例:
"01/31/1986","25003050040000","SHA","香农",121,"",0,0,1324,31,False,P,""
我有 2013 年到 1986 年的记录,必须对它们进行排序,但无法理解这是如何完成的。从我搜索的内容中,我找不到任何我能理解的东西。
非常感谢和赞赏提前!
编辑:最简单的方法是使用 Linux/unix。一个简单的排序命令正是我所说的。
前任。排序 -t/ -g -r -k3 -k1 -k2 infile.csv > outfile.csv
-t/ 设置分隔符,-g 按数值排序,-r 从最后一行开始读取文件。-k3 是年份字段,-k1 是月份字段,-k2 是日期字段。它将按年排序,然后按月排序,然后按天排序。如果您需要按时间顺序对巨大的 csv 文件进行排序,并且它不适合 excel,这是迄今为止我找到的最简单的解决方案。
注意:如果您的数据是逗号分隔的,并且日期字段后面的字段是数字,您需要将第一个逗号分隔符更改为 /,这样它就不会在排序中包含尾随数据。
前任。02/25/1987,204928169562,62563959401,16375840 <-- 这需要更改为 02/25/1987/204928169562,62563959401,16375840 以便您的数据正确排序。