【问题标题】:Save multiple lists into 1 csv by column?按列将多个列表保存到 1 个 csv 中?
【发布时间】:2018-05-05 19:17:36
【问题描述】:

如何使用 numpy 将多个列表保存到 .csv 文件中,其中每个列表代表一列。

例如:

A=['A','B','C']
B=['1','2','3']

csv 输出文件应如下所示

A,1
B,2
C,3

试过了,但只需要1个参数,怎么做?

numpy.savetxt('output.csv', A,B , delimiter=',', fmt='%s')

【问题讨论】:

  • 看看numpy.hstackvstackstack
  • savetxt 保存一个数组,而不是列表。如果给定一个列表(或列表列表),它会尝试将其转换为数组。
  • @hpaulj 是的,但如果我将其转换为数组,我正在使用列表,然后它也会添加 {'' ''} 元素,这与电子表格不兼容。
  • 直接写列表怎么样?也许使用 zip 对它们进行迭代。

标签: list csv numpy export-to-csv


【解决方案1】:

您实际上并不需要 numpy。使用csv Python module 很容易做到。

例如,

In [13]: A
Out[13]: ['A', 'B', 'C']

In [14]: B
Out[14]: ['1', '2', '3']

In [15]: import csv

In [16]: with open('AB.csv', 'w') as f:
    ...:     writer = csv.writer(f)
    ...:     writer.writerows(zip(A, B))
    ...: 

In [17]: !cat AB.csv
A,1
B,2
C,3

或者只是简单的 Python,没有 csv 模块:

In [26]: with open('AB.csv', 'w') as f:
    ...:     f.write(''.join('{},{}\n'.format(a, b) for a, b in zip(A, B)))
    ...:     

In [27]: !cat AB.csv
A,1
B,2
C,3

但是如果你真的想用numpy.savetxt:

In [28]: import numpy as np

In [29]: np.savetxt('AB.csv', list(zip(A, B)), fmt='%s', delimiter=',')

In [30]: !cat AB.csv
A,1
B,2
C,3

所有这些建议都使用zip(A, B)AB 创建成对元组序列:

In [34]: list(zip(A, B))
Out[34]: [('A', '1'), ('B', '2'), ('C', '3')]

【讨论】:

    猜你喜欢
    • 2017-08-30
    • 1970-01-01
    • 2021-11-06
    • 2021-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    相关资源
    最近更新 更多