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的主要内容,如果未能解决你的问题,请参考以下文章
如何将 python 中 for 循环的输出写入 csv 格式的文件?
具有不同文件名的 for 循环中的 DataFrame 到 CSV