【发布时间】:2019-07-02 02:26:07
【问题描述】:
我有一本有一个键和两个值的字典。我想将字典写入 csv 文件,并根据其中一个值进行排序。我还希望每个值在 csv 文件中都有自己的列。 我好像做不到。
sorted_combined = sorted(combined.items(), key = lambda kv: kv[1][1])
with open('output.csv', 'wb') as output:
writer = csv.writer(output)
writer.writerow(["Subject", "Sij", "gij"])
for key, value in sorted_combined.iteritems():
writer.writerow(k, sorted_combined[k])
我知道有些人说要试试 writer.writerow([k] + sorted_combined) 要么 writer.writerow(key, *value)
没有一个工作。我得到的错误消息是:无法连接元组。
我期望得到的是:
Subject Sij gij
sub001_01 6578 18
sub992_03 3820 5
*****编辑***** 这就是我的 sorted_combined 的样子。但是,例如,您在最后看到的 (1,6) 不再是元组,而是字符串。命名字典键时,每个元组都被转换为字符串。
[('network6_QNS_0045_01_(1, 6)', (0.0, 0.0)), ('network6_QNS_0045_01_(1, 4)', (0.0, 0.0)), ('network6_QNS_0045_01_(0, 6)', (0.0 , 0.0)), ('network6_QNS_0045_01_(2, 5)', (0.0, 0.0)), ('network6_QNS_0045_01_(1, 7)', (0.0, 0.0)), ('network6_QNS_0045_01_(1, 5)', ( 0.0, 0.0)), ('network6_QNS_0045_01_(1, 3)', (0.0, 0.0)), ('network6_QNS_0045_01_(5, 6)', (0.0, 0.0)), ('network6_QNS_0045_01_(3, 5)', (0.0, 0.0)), ('network6_QNS_0045_01_(2, 6)', (743466.0, 18.387329999999999)), ('network6_QNS_0045_01_(5, 7)', (142774.0, 18.76964999_9999999)'4999_9999999)), (0_1 (232822.0,20.1606400000001)),('Network6_Qns_0045_01_(3,6)'(780163.0,24.74813999999999999999999)),('Network6_Qns_0045_01_(2,3)',(199652.0,26.6358600000000000001),('Network6_Qns_0045_01_(4,7) '(2248433.0,27.27872999999999999999999)),('Network6_Qns_0045_01_(3,4)'(922289.0,27.979320000000001)),('Network6_Qns_0045_01_(1,2)',(396823.0,29.924759999999999999999999999999999),('network6_qns_0045_01_(4,6 )', (2897317.0, 30.266200000000001)), ('ne Twork6_qns_0045_01_(0,4)'(520923.0,31.0405699999999999999)),('Network6_Qns_0045_01_(4,5)'(6358.0,32.68)),('Network6_Qns_0045_01_(2,4)',(3622715.0,35.321170000000002),( 'Network6_Qns_0045_01_(2,7)'(364815.0,37.499250000000004),('network6_qns_0045_01_(0,1)'(145240.0,38.8780599999999998)),('network6_qns_0045_01_(0,7)',(224456.0,46.5182)), ('network6_qns_0045_01_(0,3)'(1692.0,56.8495000000000003)),('network6_qns_0045_01_(6,7)'(280955.0,57.61619000000000003),('network6_qns_0045_01_(3,7)',(2012.0,71.302719999999994)) , ('network6_QNS_0045_01_(0, 2)', (1660.0, 84.085009999999997))]
【问题讨论】:
标签: python pandas csv sorting dictionary