2016-12-23 2 views
1

У меня есть dictinoary, как этоНаписать Dict из Dict в CSV файл

{id1:{t1:1, t2:2, t3:4, t5:3 ...}, id2:{t2:1, t3:3...},...id3332:{tX:X, tX:X}} 

В то время как длина Словаря является 3332, так что получило 3332 ид здесь. Но длина каждого идентификатора может быть не одинаковой. И эти клавиши (t1, t2, t3...) также являются случайными.

Я хочу вывести эти данные в CSV-файл, например так:

IDs t1 t2 t3 t4 t5 ... 
id1 1 2 4 0 3 
id2 0 1 3 0 0 
id3 0 1 0 4 0 
: 
id3332 ... 

Что означает для каждого идентификатора, если имеется значение в течение времени (e.g. for id1, t1=1, t2=2), то выход это значение в соответствующем положении, если нет значение за это время (e.g. for id1, no value for t4, then output 0).

Я только что проверил документацию и попытался использовать csv.write, но не понял.

A выборочные данные могут быть получены с использованием

sample = {103061863: {'26/08/2014 07:20:00': '"5"', '23/08/2014 20:25:00': '"8"', '14/08/2014 18:55:00': '"6"'}, 103061862: {'06/08/2014 11:15:00': '"5"', '21/08/2014 13:10:00': '"5"', '01/08/2014 05:55:00': '"5"'}, 103061819: {'02/08/2014 09:50:00': '"6"', '17/08/2014 07:30:00': '"5"', '08/08/2014 20:30:00': '"7"', '23/08/2014 20:25:00': '"7"', '21/08/2014 09:50:00': '"6"', '17/08/2014 15:00:00': '"7"'}} 

Так нужен файл CSV в таком виде:

IDs '26/08/2014 07:20:00' '23/08/2014 20:25:00' '14/08/2014 18:55:00' t4 t5 ... 
103061863 5      8    6   ... 
103061862 0      3    0   ... 
103061819 0      7    0   ... 
+8

Попробуйте ввести код в questio n, поэтому мы можем вам помочь – Lucas

+0

Я думаю, что ваш самый простой вариант - перевести dict в рамку данных pandas, а затем просто экспортировать его в csv с помощью функции to_csv() –

+0

@MarcvT. Это встроено? Нужно ли его загрузить и установить? –

ответ

2

Это хороший случай использовать pandas библиотеку - превратить ваш Dict в pandas.DataFrame первый и затем сохраните его to_csv:

import pandas as pd 

df = pd.DataFrame.from_dict(d, orient='index').fillna(0) 
df.to_csv(...) 
+0

Я предполагаю, что мне понравится эта библиотека! –

+0

есть ли способ сортировки кадра данных в зависимости от времени? –

+0

'df.columns = sorted (df.columns)' должен делать трюк –

Смежные вопросы