簡體   English   中英

將距離矩陣 csv 解析成 python 字典結構

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM