首页 > 解决方案 > for循环中的2个csv文件,输出一个csv文件python

问题描述

我有 2 个 csv 文件,第一个(station.csv)有两列纬度和经度,第二个(catalog.csv 有 5 列,还有两列有纬度和经度)我设法计算了距离在 geopy.distance.distance 的两点之间,但是当我尝试遍历文件以获取 catalog.csv 中每个 lat-long 与车站 ot 的距离时,总是给我最后一个值。理想情况下,输出将添加与站点一样多的列,因此对于 catalog.csv 中的每个点,我都会与给定站点保持距离。

预期输出 ctlg.csv 与原始数据和 29 个新列与每个 sts 的距离。

timeUtc,纬度,经度,幅度,distance_sts1 ....29

    import pandas as pd  
    import geopy.distance  
    from pandas.core.frame import DataFrame  
    ctlg1 = pd.read_csv('ctlg1.csv', sep=',')  
    sts = pd.read_csv('stations.csv', sep=',')   
    for row1 in sts.iterrows():  
      coords_1 = (row1[1][1], row1[1][2])  
      for row2 in ctlg1.iterrows():  
      coords_2 = (row2[1][4], row2[1][5])  
      distance = geopy.distance.distance((coords_1),(coords_2))  
      data = [distance]    
      df = pd.DataFrame(data)  
      df.to_csv("ctlg.csv")    

标签: pythonpandascsvfor-loop

解决方案


计算嵌套for循环内的距离后,您将其分配给 variable data

但是在每次迭代之后,数据的值都会被覆盖。所以很自然,最终的值data将是最后一个坐标对应的距离。


推荐阅读