0

所以我对python有点陌生。我几乎完成了我正在处理的一个项目,我需要绘制两个经度和纬度点之间的距离。我们正在根据这个距离创建一个竞争指数,它总是导致一些十进制值或 0。反过来,我将所有这些值存储在 pandas 数据框中,并试图将它们加在一起以创建一些总数这些指标。

这是我的代码。(为简洁起见,我没有在第 6 行列出所有 c1 到 c435)

import pandas as pd
import geopy.distance
import numpy as np
import csv as csv
from pandas import ExcelWriter
df_distance = pd.DataFrame(['C1': 'C413'])])

df4 = pd.read_csv(r'C:\Users\Jake\PycharmProjects\FM-NAICS-1.0\DF4.csv')
with open("dist_test.csv", "w") as csvfile:
csize = 10 ** 5
for df3 in pd.read_csv(r'DF3.csv', keep_default_na=False, chunksize=csize):
    for index, row in df3.iterrows():
        lat1 = row['Lat']
        lon1 = row['Long']
        distance = 0
        for index2,row2 in df4.iterrows():
            lat2 = row2['Lat']
            lon2 = row2['Long']
            coords_1 = [lat1, lon1]
            coords_2 = [lat2, lon2]
            distance = geopy.distance.distance(coords_1, coords_2).miles
            if distance > 300:
                distance = 0
            else:
                distance = distance
            df_distance = pd.DataFrame([distance])
            distance_index = ((300 - distance)/300)
            if distance_index != 1:
                distance_index = distance_index
            else:
                distance_index = None
            di_df = pd.DataFrame([distance_index])
            sum_di = di_df.sum()
        exit()

如何让我的 sum_di 对数据框距离索引中的所有值求和?现在我只是得到每个点的输出及其 dtype:float 64。

我想将它附加到 di_df 数据框的末尾。

任何帮助将不胜感激。非常感谢你们。

4

1 回答 1

1

如果我正确理解了这个问题,您只需要指定列:

>>> sum_di = di_df['distance_index'].sum()

此外,如果您打算在完成后求和,请确保它发生在循环之外,而不是内部。

于 2018-11-08T21:48:58.207 回答