python - 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")
解决方案
计算嵌套for
循环内的距离后,您将其分配给 variable data
。
但是在每次迭代之后,数据的值都会被覆盖。所以很自然,最终的值data
将是最后一个坐标对应的距离。
推荐阅读
- javascript - 无法使用 Safari 上的存储访问 API 在 iframe 中设置 cookie
- python - 将散景面板保存到独立的 HTML
- linux - `nanosleep()` Linux 上的异步信号安全
- c++ - 异常:字符串下标超出范围
- css - 无法使用 Angular 标签格式化引导 css
- php - 使用 Query Builder 的 codeigniter 4 中的分页问题
- html - 使用自定义清洁文本换行
- 带有伪类的子弹
- sql - SQL查询分组数据不在
- linux - 为什么在交叉编译时找不到包含的 C 头文件,但在没有 cc 时却很好?
- c# - 根据单击的按钮隐藏或显示 C# 中的某些 ListBox 项