[英]Transpose each row into a column in python (from a csv file)
我正在尝试编写执行以下操作的 python 代码。 有人可以帮忙吗? 谢谢!
读取 csv 文件 (file1) 中的每一行,转置它,并将其堆叠到新的 csv 文件 (file2) 中的单个列中。 File1 有 6 列 90 行的数据:请点击这里查看图片
我首先将 csv 转换为列表列表 -
import csv
with open(InputFile, 'r') as csvFile:
list_of_lists = []
reader = csv.reader(csvFile)
for row_num, row in enumerate(reader):
list_of_lists.append(row)
然后用它来重新排列元素。 例如,如果您的列表看起来像 -
list_of_lists = [[1, 1, 1], [2, 2, 2], [3, 3, 3]]
result = []
for i in list_of_lists:
for j in i:
result.append(j)
print(result)
# Output:
# [1, 1, 1, 2, 2, 2, 3, 3, 3]
只是添加一个注释,它不是转置的意思。 Transpose 会将行转换为列,将列转换为行
import csv
with open('input.csv') as infile:
csvreader = csv.reader(infile, delimiter=',') # select your csv's delimiter
out = []
for row in csvreader:
out.extend(row)
现在您所有的行都已加入 1 个列表。 现在您可以将其保存为新的 csv 文件中的单列。
我猜想对于“6 列和 90 行”的输入,memory 不会成为问题。 所以你可以这样做:
import csv
with open("input.csv", "r") as fin, open("output.csv", "w") as fout:
fout.write("\n".join(item for row in csv.reader(fin) for item in row))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.