2016-12-23 62 views
1

我dictinoary是这样写字典的字典到CSV文件中

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

虽然字典的长度为3332,所以得了3332个IDS在这里。但每个ID的长度可能不一样。而那些钥匙(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 ... 

这意味着对于每个ID,如果有一时间(e.g. for id1, t1=1, t2=2)的值,然后输出,在相应的位置,值,如果没有当时的价值(e.g. for id1, no value for t4, then output 0)

我刚刚检查了文档,并试图使用csv.write,但没有弄明白。可以使用

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

我认为你最简单的选择是将字典转换为熊猫数据框,然后用to_csv()函数将它导出到csv –

+0

@MarcvT它是否内置?我需要下载并安装它吗? –

回答

2

这是一个很好的例子使用​​库 - 把你的词典到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)'应该诀窍 –