for循环中的2个csv文件,输出一个csv文件python

Posted

技术标签:

【中文标题】for循环中的2个csv文件,输出一个csv文件python【英文标题】:2 csv file in a for loop, output one csv file python 【发布时间】:2021-11-02 12:41:53 【问题描述】:

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

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

timeUtc,latitude,longitude,magnitude,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")    

【问题讨论】:

你也可以添加你尝试的代码 同时添加样本数据和预期输出 请修正缩进 【参考方案1】:

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

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

【讨论】:

以上是关于for循环中的2个csv文件,输出一个csv文件python的主要内容,如果未能解决你的问题,请参考以下文章

如何将 for 循环输出写入 csv 文件?

如何将 python 中 for 循环的输出写入 csv 格式的文件?

具有不同文件名的 for 循环中的 DataFrame 到 CSV

For 循环将带有纬度和经度的 .csv 文件与 Dataclass 进行比较

Python - 写入 CSV 文件和 for 循环

对于 R 中的大迭代,foreach 循环变得不活动