【问题标题】:Python csv writer, numpy array to csvPython csv writer,numpy数组到csv
【发布时间】:2014-10-02 20:48:39
【问题描述】:

我有包含 4 个键值对的 Python 字典。每个值都是一个 numpy 数组。现在我想将整个 dict 打印到 csv 中,强制每行写入一个 numpy 数组。

with open(os.path.join("csv", title), 'w', newline='') as f:
  w = csv.DictWriter(f, list(data.keys()))
  w.writeheader()
  w.writerow(data)

是我用过的。但是我的一些数组被写入了几行而不是一行。

这里是输入数据的例子:

{'DE': array([[ 38574. , 38538.1904, 39511.6190, 42521.1428, 50586., 46282.5238, 42714.4761, 40612.0476], [ 42798.4666、42112.5333、42277.8666、42886.1333、 50224.3333、48148.8、44272.6666、41210.2]])}

我希望输出这样,我的数组的每一行都写在一行上。相反,我在一定数量的数字后得到一个包含“\n”的文件。如何强制将整个数组写入一行?

【问题讨论】:

  • 您能否提供一个输入数据的最小示例?
  • 那么您希望输出是什么样的?
  • 对不起,我编辑了,希望这能回答问题
  • 你的第一个例子不正确,Dictwriter 根据键写入每一列,输出应该在单独的列中,而不是一个在另一个之下

标签: csv python-3.x numpy


【解决方案1】:

DE 有一个多维数组作为它的值,Inter 有一个空列表作为它的值,你最终得到两列,一列以 Inter 作为标题,其列中有一个空列表,第二列DE 在其列中带有 array,这正是代码应该执行的操作。

如果你想改变每个数组长度尝试设置numpy.set_printoptions

numpy.set_printoptions(linewidth=1000)

【讨论】:

  • 是和不是。我最终在 excel 中打开了以下文件:A1:DE,INTER,A2:38574、38538、39511、42521、A3:48751、54737、58725、60445、A4:50586、46282、42714、40612] 如果我用编辑器打开它,它会在 4 个值之后显示“\n”。我不知道他们来自哪里。
  • 实际上它仍然没有按预期工作。有时当我在 excel 中打开 csv 时,所有内容都会写入一个单元格,有时会按预期写入。
猜你喜欢
  • 2020-02-14
  • 2016-12-09
  • 1970-01-01
  • 2017-01-16
  • 2010-11-15
  • 2018-07-09
  • 1970-01-01
  • 1970-01-01
  • 2018-10-21
相关资源
最近更新 更多