Как реализовать мою формулу в панде Dataframe? - PullRequest
1 голос
/ 18 октября 2019

Я работаю с набором данных Diamonds. Я работаю с двумя колонками, в частности: карат и таблица.

Я должен создать функцию, которая принимает фрейм данных и вычисляет расстояние на основе следующей формулы:

Python

$distance = ((carat_i - carat_j)/0.8)^2 + ((table_i - table_j)/57)^2

Функция должна вывести матрицу, в которой i-й ряд и j-й столбецматрица должна быть расстоянием между i-м и j-м измерениями.

Я успешно импортировал кадры данных в виде двух столбцов, как показано в приведенном ниже коде.

# where df is diamonds
def exercise3(df):
    df1 = DataFrame(df)
    df2 = Dataframe(df1,
        columns=['carat','table'])

Но я не уверен, как реализовать мою формулу для следующего шага

1 Ответ

0 голосов
/ 18 октября 2019

Я проверил это с примерами данных, и это должно работать

import pandas as pd
import numpy
data = [[5, 10], [7, 15], [10, 14]]

test_df = pd.DataFrame(data, columns = ['carat', 'table'])

def exercise3(df):
    output_array = numpy.zeros(shape=(len(df),len(df)))
    for index_i, row_i in df.iterrows():
        for index_j, row_j in df.iterrows():
            output_array[index_i,index_j] = ((row_i['carat'] - row_j['carat'])/0.8)**2 + ((row_i['table'] - row_j['table'])/57)**2
    return output_array

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