排序csv列?

时间:2014-08-26 12:17:55

标签: python sorting python-2.7 csv

我的CSV文件如下:

Timestamp;A;O;P;M;
22:05;5;7;2;1
22:10;2;3,4;7
22:15;7;4;3;2

使用python脚本我想订购标题(时间戳除外。它必须是第一列)。我的意思是:

Timestamp;A;M;O;P;
22:05;5;1;7;2
22:10;2;7;3;4
22:15;7;2;4;3

我该怎么办?我没有任何代码,因为我无法弄清楚如何去做。

3 个答案:

答案 0 :(得分:2)

你可以用NumPy做到这一点!

import numpy as np

a = np.loadtxt('a.txt', dtype=str, delimiter=';')
s = a[0].argsort() # produces the indexes which would sort the header
s = np.append(0, s[s!=0]) # put 0 at the front again, that's Timestamp
final = a[:,s]
np.savetxt('final.txt', final, fmt='%s', delimiter=';')

答案 1 :(得分:1)

你的意思是这样的吗?

import csv

with open('old.csv', 'r') as i, open('new.csv', 'w') as o:
   reader = csv.reader(i, delimiter=';')
   writer = csv.writer(o, delimiter=';')
   for row in reader:
      writer.writerow([row[0], row[1], row[4], row[2], row[3]])

答案 2 :(得分:0)

您好这篇文章可能对您有所帮助。检查此链接。 sort csv by column

https://stackoverflow.com/questions/2100353/sort-csv-by-column