【发布时间】:2017-01-23 03:49:46
【问题描述】:
我正在处理一个相当基本的 CSV 文件,该文件描述了四个城市以及它们之间的距离。因此,目标是从所述文件中检索信息,并使用 Python 进行进一步的操作。
Excel 文件
该文件在 Excel 中构建如下:
CSV 文件
导出为 CSV 时,文件表示如下:
,OSL,CPH,LDN,TKO
OSL,0,2,4,10
CPH,2,0,2,9
LDN,4,2,0,12
TKO,10,9,12,0
获取城市
显然,第一行包含所有城市,以及第一个空白单元格。我已执行以下操作来检索城市,不包括空白单元格:
def get_cities(file):
reader = csv.reader(file)
cities = []
row1 = next(reader)
cities.extend(row1[1:]) #exclude first cell (blank)
print cities
产量:
['OSL', 'CPH', 'LDN', 'TKO']
绘制城市和城市之间的距离
完成后,我现在可以读取文件的其余部分,以检索城市之间的距离。
但是,我发现很难想出一种将这些信息表示为数据结构的好方法。理想情况下,我希望能够检查任何两个城市之间的距离。
任何关于我如何实现这一点的建议,将不胜感激。
也就是说,我怎样才能最好地表示这些信息以便于进行距离查找?
【问题讨论】:
-
你不考虑使用熊猫吗?里面有DataFrame。
-
我会使用这样的字典:
my_data = {'cities': ['OSL', 'CPH', ...], 'OSL': [0, 2, 4, 10], 'CPH': [2, 0, 2, 9] ,...}。正如@AntonGlukhov 所说,pandas 可以轻松为您做到这一点,但您也可以。 -
请看一下 pandas.DataFrame.from_csv 类方法。
标签: python csv data-structures types