Фреймы данных Pandas суммируют плавающие значения - PullRequest
0 голосов
/ 09 ноября 2018

Так что я немного новичок в питоне. Я почти закончил проект, над которым работаю, где мне нужно было отобразить расстояние между двумя точками долготы и широты. Существует конкурентный индекс, который мы создаем на основе этого расстояния, который всегда приводит к некоторому десятичному значению или 0. В свою очередь, все эти значения хранятся в кадре данных pandas, и я пытаюсь суммировать их все вместе, чтобы создать некоторое общее количество эти показатели.

Вот мой код. (Ради краткости я не перечислял все строки c1-c435 в строке 6)

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.

Любая помощь будет оценена. Спасибо вам, ребята.

1 Ответ

0 голосов
/ 09 ноября 2018

Если я правильно понял вопрос, вам просто нужно указать столбец:

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

Кроме того, убедитесь, что это происходит вне цикла, а не внутри, если вы собираетесь суммировать, как только закончите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...