在Python中从多个列表写入tsv文件



我有两个列表

ids = [1,2,3]
values = [10,20,30]

我需要创建一个包含两列(idresult(的tsv文件,并将idsvalues放在其中。输出应该像这个

id result
1  10
2  20
3  30

我在下面写了代码

output_columns = ['id','result']
data = zip(output_columns, ids, values)
with open('output.tsv', 'w', newline='') as f_output:
tsv_output = csv.writer(f_output, delimiter='t')
tsv_output.writerow(data)

但这给了我一个如下的输出,这是错误的

('id', '1', '10') ('result', '2','20')

我知道这种错误的输出是因为我使用zip创建一行数据的方式。但我不知道该怎么解决。

请提出建议。

output_columns = ['id','result']
data = zip(ids, values)
with open('output.tsv', 'w', newline='') as f_output:
tsv_output = csv.writer(f_output, delimiter='t')
tsv_output.writerow(output_columns)
for id, val in data:
tsv_output.writerow([id, val])

使用pandas 更容易

In [8]: df = pd.DataFrame({"ids":[1,2,3], "values":[10,20,30]})
In [9]: df
Out[9]:
ids  values
0    1      10
1    2      20
2    3      30
In [10]: df.to_csv("data.tsv", sep="t", index=False)

最新更新