小编典典

如何在csv表中进行行到列的数据转置?

python

我是脚本新手。我有一个表(Table1.txt),我需要创建另一个表,该表的Table1行按列排列,反之亦然。我已经找到了针对Perl和SQL而不是针对Python的解决方案。

我两天前才开始学习Python,所以据我所知:

import csv
import sys

with open(sys.argv[1], "rt") as inputfile:
   readinput = csv.reader(inputfile, delimiter='\t')
   with open("output.csv", 'wt') as outputfile:
      writer = csv.writer(outputfile, delimiter="\t")
      for row in readinput:
            values = [row[0], row[1], row[2], row[3]]
            writer.writerow([values])

这只是将列复制为列。我现在想做的是将最后一行写为,writer.writecol([values])但是似乎没有这样的命令,而且我还没有找到将行写为列的另一种方法。


阅读 319

收藏
2020-12-20

共1个答案

小编典典

通常,转置可迭代序列的解决方案是:zip(* original_list)

样本输入:

1   2   3   4   5
6   7   8   9   10
11  12  13  14  15

程序:

with open('in.txt') as f:
  lis = [x.split() for x in f]

for x in zip(*lis):
  for y in x:
    print(y+'\t', end='')
  print('\n')

输出:

1   6   11

2   7   12

3   8   13

4   9   14

5   10  15
2020-12-20