所以我是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数据帧的末尾。
任何帮助将不胜感激。非常感谢你们。
答案 0 :(得分:1)
如果我对问题的理解正确,则只需指定列:
>>> sum_di = di_df['distance_index'].sum()
另外,如果打算在完成后求和,请确保它发生在循环之外,而不是内部。