排序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
嗨,这个帖子可能对你有帮助。你可以看看这个链接。 按列排序CSV文件
https://stackoverflow.com/questions/2100353/sort-csv-by-column
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
你可以用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=';')