我有dictinoary就是这样
{id1:{t1:1, t2:2, t3:4, t5:3 ...}, id2:{t2:1, t3:3...},...id3332:{tX:X, tX:X}}
虽然dict的长度是3332,但这里有3332个ID。但每个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 ...
答案 0 :(得分:2)
使用pandas
库是个好例子 - 首先将您的字母转换为pandas.DataFrame
,然后保存to_csv
:
import pandas as pd
df = pd.DataFrame.from_dict(d, orient='index').fillna(0)
df.to_csv(...)