如何以列形式保存csv中的dict,其中第一行是键,下一行是向量?
发布时间:2020-12-20 11:07:41 所属栏目:Python 来源:网络整理
导读:我有一个dict,其形式如下: Sigs_dict['a']=[1,2,3,4,5]Sigs_dict['b']=[6,7,8,9,0]Sigs_dict['c']=[1,5] 我想要一个csv文件,其中第一行是dict的键,下一行是列形状的向量. 喜欢: a b c1 6 12 7 23 8 34 9 45 0 5 我现在拥有的是第一行,但我不明白如何正确地
我有一个dict,其形式如下:
Sigs_dict['a']=[1,2,3,4,5] Sigs_dict['b']=[6,7,8,9,0] Sigs_dict['c']=[1,5] 我想要一个csv文件,其中第一行是dict的键,下一行是列形状的向量. a b c 1 6 1 2 7 2 3 8 3 4 9 4 5 0 5 我现在拥有的是第一行,但我不明白如何正确地写入向量. with open(fileName[0],'w') as f: writer = csv.writer(f,delimiter = ' ') writer.writerow(Sigs_dict.keys()) #missing something here 所有向量都具有相同的长度. 解决方法
使用
zip built-in的简单选项(没有pandas依赖,eventhough pandas允许更少的代码行):
my_dict = {} my_dict['a'] = [1,5] my_dict['b'] = [6,0] my_dict['c'] = [1,5] # get keys and values in the same order,in this case,sorted by key # key_list = sorted(my_dict.keys()) key_list = [k for k,_ in sorted(my_dict.items())] val_list = [v for _,v in sorted(my_dict.items())] with open(fileName[0],delimiter=' ') writer.writerow(key_list) for row in zip(*val_list): writer.writerow(row) 请注意我如何使用星号(*)解压缩val_list;如果没有解压缩,这将无法按预期工作. 编辑我的代码以具有固定的顺序,以防止列标题和内容之间的不匹配. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |