如何在csv python中交换行/列



我的原始csv文件如下。

ID,SCORE1,SCORE2
1101110061,50,75
70,1101110062,80
85,52,1101110063

如何将score1score2交换到ID列中?

我想喜欢这个:

ID,SCORE1,SCORE2
1101110061,50,75
1101110062,70,80
1101110063,52,85

使用csv或pandas,但首选csv。

根据您的示例,ID具有最大值,然后分数看起来是排序的。因此,您可以按整数值对每一行进行排序,然后将最大(最后(值作为ID,然后将剩余值作为分数。例如:

import csv
with open('input.csv') as f_input, open('output.csv', 'w', newline='') as f_output:
csv_input = csv.reader(f_input)
header = next(csv_input)
csv_output = csv.writer(f_output)
csv_output.writerow(header)

for row in csv_input:
sorted_row = sorted(map(int, row))  # convert to integers and sort
csv_output.writerow([sorted_row[-1], *sorted_row[:-1]])
ID,SCORE1,SCORE2
1101110061,50,75
1101110062,70,80
1101110063,52,85

如果您只想更改列顺序:

import csv
with open('input.csv') as f_input:
data = list(csv.reader(f_input))

with open('output.csv', 'w', newline='') as f_output:
csv_output = csv.writer(f_output)

for row in data:
csv_output.writerow([row[1], row[2], row[0]])

给你:

SCORE1,SCORE2,ID
50,75,1101110061
1101110062,80,70
52,1101110063,85

最新更新