Как написать два словаря в CSV? - PullRequest
0 голосов
/ 07 февраля 2019

Мне было интересно, как я могу перебрать два словаря: yin и BL.

У меня есть следующий код для перебора только 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)]

Чтобы объяснить код: в основном я беру две отдельные матрицы и извлекаю верхнюю половину каждой матрицы и сохраняю ихзначения в двух отдельных словарях.

1 Ответ

0 голосов
/ 07 февраля 2019

Если у вас есть два словаря yin и bl, это будет то, как вы бы соединили словари описанным способом и записали их в файл 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]])
...