使用多个列对excel数据排序

2024-05-13 22:01:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用2或3列对excel数据进行排序(如果你愿意的话,可以使用嵌套排序)。 目前的情况是,我得到一个文本文件(有时超过1个)和日志条目,然后我必须转换成一个托管的Excel电子表格。在

我已经设法做到了,但现在我的经理希望我也能分别按“日期”和“时间”列进行排序。在

所以为了把它分解,我只是想知道我该怎么做。在

要求:

通过多个列对csv或excel电子表格进行排序,并将它们写入文档(最好是相同类型的)。在

代码:

目前我的代码是:

import csv, os
import operator

testcsv= open('test.csv', 'r')
csvSort = csv.reader(testcsv, delimiter=",")
sort = sorted(csvSort,key=operator.itemgetter(0,1))

for eachline in sort:
    print eachline

这对“打印”和检查都很好。 但是我不能用这个把数据写回excel电子表格。在

如果我这样做了,它会变成一行而不是多行。 当我向文件写入行时,我使用的代码是:

^{pr2}$

也许如果有人有更好的选择让我使用或添加一些能帮助我的东西,我会很感激的。在

正在使用的测试输入数据文件

05/02/2015,20:22:24,201534
07/02/2015,20:23:24,201534
05/02/2015,20:23:24,201534
06/02/2015,20:23:24,201534
05/02/2015,20:24:24,201534
13/02/2015,20:24:24,201534
13/02/2015,20:24:24,201534
12/02/2015,20:21:24,201534
01/02/2015,20:21:24,201534
21/02/2015,20:21:24,201534
21/02/2015,20:21:24,201534
13/02/2015,20:21:24,201534
13/02/2015,20:21:24,201534
13/02/2015,20:21:24,201534
13/02/2015,20:21:24,201534
13/02/2015,20:21:24,201534
13/02/2015,20:21:24,201534
13/02/2015,20:21:24,201534
13/02/2015,20:21:24,201534
05/02/2015,20:21:24,201534
05/02/2015,20:21:24,201534
05/02/2015,20:21:24,201534
05/02/2015,20:18:24,201534
05/02/2015,20:18:24,201534
05/02/2015,20:18:24,201534
05/02/2015,20:22:24,201534

Tags: csv数据代码import排序情况sortexcel
1条回答
网友
1楼 · 发布于 2024-05-13 22:01:00

您可以重用csv.writer来写回整个已排序的列表列表。它有一个名为writerows()的函数。示例-

dest = "C:/Test2.csv"
with open(dest,'w') as f:
    writer = csv.writer(f)
    writer.writerows(sort)

请注意,您不需要将分隔符指定为,,默认分隔符是逗号。在

当前,当您将writelineseachline列表一起使用时,它会同时写入列表的每个元素,但不会添加所需的换行字符。所以所有的数据看起来都在一行。您应该使用csv.writer来写回csv/excel文件。在

相关问题 更多 >