[英]Parsing a distance matrix csv into python dictionary structure
我在 csv 文件中有一個像這樣布置的距離矩陣
, A, B, C,
A, 0
B, 3, 0
C, 6, 4, 0
我想把它解析成這樣的 python 字典......
graph = {'A': {'B': 3, 'C': 6},
'B': {'A': 3, 'C': 4},
'C': {'A': 6, 'B': 4}}
使用您指定的文件,您將永遠不會在graph
中獲得該 dict 。 無論如何,如果您提供正確的 CSV 文件,下面的代碼將完全符合您的要求。
請注意,在 CSV 文件中,header 行(第一行)的末尾不能有逗號,並且列名(第一行)不能有空格。 否則,你會得到一個奇怪的dict
。
import pandas
import io
import math
d = pandas.read_csv('csv_file.csv',sep=',',header=0,index_col=0)
d_dict = d.to_dict() # use d.to_dict(orient='index') for the transpose
graph = { k.strip():{ k2.strip():v2 for k2,v2 in v.items() if not math.isnan(v2) } for k,v in d_dict.items() }
print(graph)
生成相應的dict
{'A': {'A': 0, 'B': 3, 'C': 6},
'B': {'B': 0.0, 'C': 4.0},
'C': {'C': 0.0}}
csv_file.csv
,A,B,C
A, 0
B, 3, 0
C, 6, 4, 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.