У меня есть вложенные dicts, которые имеют внутренний список в качестве значения, которое я пытаюсь экстраполировать в CSV-файл под несколькими именами столбцов. Диктовка выглядит следующим образом:
{'signal': {'chest': {'ACC': array([[ 0.95539999, -0.222 , -0.55799997],
[ 0.92579997, -0.2216 , -0.55379999],
[ 0.90820003, -0.21960002, -0.53920001],
...,
[ 0.87179995, -0.12379998, -0.30419999],
[ 0.87300003, -0.12339997, -0.30260003],
[ 0.87020004, -0.12199998, -0.30220002]]), 'ECG': array([[ 0.02142334],
[ 0.02032471],
[ 0.01652527],
...,
Я написал код, чтобы сгладить его, чтобы каждый заголовок был: signal_chest_ACC, signal_chest_ECG и т. Д. Хотя и безобразно.
И я попытался обработатьЗначения каждого списка таковы, что они будут отображаться под каждым столбцом. Однако он выводит все значения в одном столбце, а не под соответствующими ключами. Как получить доступ к каждому индексу массива и вывести их в виде отдельной строки файла CSV, чтобы каждый ключ (заголовок столбца) имел соответствующий список значений в разделе?
#!/usr/bin/env python2
import sys
import numpy
import cPickle
import pandas as pd
import csv
import itertools
#numpy.set_printoptions(threshold=sys.maxsize)
with (open('S2.pkl', 'rb')) as openfile:
data = cPickle.load(openfile)
for key, value in data['signal'].items():
data['signal_{}'.format(key)] = value
del data['signal']
for key, value in data['signal_wrist'].items():
data['signal_wrist_{}'.format(key)] = value
del data['signal_wrist']
for key, value in data['signal_chest'].items():
data['signal_chest_{}'.format(key)] = value
del data['signal_chest']
keys = sorted(data.keys())
with open('out-testx.csv', 'wb') as csv_file:
w = csv.writer(csv_file, delimiter = "\t")
w.writerow(keys)
for key in keys:
for item in data[key]:
w.writerow([item])
Пример вывода:
signal_chest_ACC signal_chest_ECG ...
[ 0.95539999, -0.222 , -0.55799997]
[ 0.92579997, -0.2216 , -0.55379999]
[ 0.90820003, -0.21960002, -0.53920001]
...
[ 0.02142334]
[ 0.02142334]
[ 0.01652527]
...
Желаемый выход:
signal_chest_ACC signal_chest_ECG ...
[ 0.95539999, -0.222 , -0.55799997] [ 0.02142334]
[ 0.92579997, -0.2216 , -0.55379999] [ 0.02142334]
[ 0.90820003, -0.21960002, -0.53920001] [ 0.01652527]
...