【问题标题】:How to write two dictionaries to CSV?如何将两个字典写入 CSV?
【发布时间】:2019-07-01 00:09:07
【问题描述】:

我想知道如何遍历两个字典:yinBL

到目前为止,我只有以下代码可以迭代 yin

with open('output.csv', 'wb') as output:
  writer = csv.writer(output)
  for key, value in yin.iteritems():
    writer.writerow([key, value])

yin 在字典中有值:

{'a': 2248433.0, 'b': 280955.0, 'c': 0.0}

BL 在字典中有值:

{'a': 27.2, 'b': 57.6, 'c': 0.0}

我想把它保存到一个 excel 文件中,所以它看起来像:

a  2248433.0    27.2     
b  280955.0     57.6   
c  0.0           0.0

我应该执行以下操作吗?

with open('output.csv', 'wb') as output:
  writer = csv.writer(output)
  for key, value, valye in yin.iteritems(), BL.iteritems:
    writer.writerow([key, value, value])

我还希望字典在 CSV 文件中以相同的相应顺序列出。如表所示,我想让row1: 2248433.0对应27.2

这是用于生成字典的代码:

yin = {}
BL = {}
  for asdf in glob.glob(ay):
    poregn = numpy.genfromtxt(asdf)
    btwnROIs = poregn[2:size+2, 0:size] 
    BLu = poregn[(size*5)+2:(size*5)+size+2, 0:size]
    for upmatSC in (list(combinations(range(size_FC),2))):
      yin[FC_path1 + '_' + FC_path2 + '_' + str(upmatSC)] = btwnROIs[tuple(upmatSC)]
      BL[FC_path1 + '_' + FC_path2 + '_' + str(upmatSC)] = BLu[tuple(upmatSC)]

解释代码:基本上我采用两个单独的矩阵并提取每个矩阵的上半部分并将这些值存储在两个单独的字典中。

【问题讨论】:

  • 为什么要问我们?试试看。如果你这样做,什么都不会爆炸。如果您发现自己无法解决的行为,请询问。
  • 我已经试过了......但它没有用。这就是我问的原因。谢谢.. @PatrickArtner
  • @J.Taylor 字典,在 Python 3.6 之前,是无序的。
  • @J.Taylor 在 3.6 中是一个实现细节。在 3.7 中是有保证的
  • 如果您自己生成这些,那么字典可能是一个糟糕的选择。为什么你最终会得到 2 个依赖命令将它们结合在一起的字典?这个问题可能会在您创建数据结构的上游得到更好的解决。

标签: python pandas csv dictionary file-writing


【解决方案1】:

如果您有两个字典 yinbl,您可以按照您描述的方式组合字典并将它们写入 CSV 文件:

import csv 

yin = {'a': 2248433.0, 'b': 280955.0, 'c': 0.0}
bl = {'a': 27.2, 'b': 57.6, 'c': 0.0}

with open('output.csv', 'w') as output:
    cw = csv.writer(output)

    for k in yin.keys():
      cw.writerow([k, yin[k], bl[k]])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-29
    • 1970-01-01
    • 2019-02-19
    • 2016-07-21
    • 1970-01-01
    • 2021-05-15
    • 1970-01-01
    • 2021-02-02
    相关资源
    最近更新 更多