Я новичок в Python и пытаюсь найти свой путь, пытаясь выполнить некоторые вычисления (я могу легко сделать их в Excel, но теперь я хочу знать, как это сделать в Python).
Одним из расчетов является ковариация.У меня есть простой пример, когда у меня есть 3 предмета, которые продаются, и у нас есть спрос на предмет в течение 24 месяцев.
Здесь вы видите снимок файла Excel:
Элементы и их спрос в течение 24 месяцев
Цель состоит в том, чтобы измерить ковариацию междувсе три предмета.Таким образом, ковариация между пунктами 1 и 2, 1 и 3 и 2 и 3. Но я также хочу знать, как сделать это для более чем 3 элементов, скажем, для тысячи элементов.
Расчетыследующим образом:
Сначала я должен вычислить средние значения для каждого элемента.Это уже то, что я нашел, выполнив следующий код:
после импорта следующего:
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
Я импортировал файл:
df = pd.read_excel("Directory\\Covariance.xlsx")
И вычислил среднеена строку:
x=df.iloc[:,1:].values
df['avg'] = x.mean(axis=1)
Это дает файл с дополнительным столбцом, среднее значение (в среднем):
Элементы, их спрос и среднее значение
Следующее вычисление, которое необходимо выполнить, - это вычисление ковариации между, скажем, например, пунктами 1 и 2. Это математически выполняется следующим образом:
(столбец "1" элемента 1-столбец "avg "пункта 1) * (столбец" 1 "пункта 2 - столбец" avg "пункта 2).Это должно быть сделано для столбца с «1» по «24», то есть 24 раза.Это должно добавить 24 столбца в файл df.
После этого мы должны взять среднее значение этих столбцов, и это отображает ковариацию между пунктами 1 и 2. Поскольку мы должны сделать это N-1 раз, поэтому в этом простом случае у нас должно быть 2 числа ковариации(для первого элемента - ковариация с элементами 2 и 3, для второго элемента - ковариация с элементами 1 и 3 и для третьего элемента - ковариация с элементами 1 и 2).
Итак, первый вопрос;как можно добиться этого для этих 3 элементов, чтобы в файле был столбец, отображающий 2 результата ковариации на элемент (первый элемент должен иметь столбец с номером ковариации элементов 1 и 2 и второй столбец с номером ковариации между элементами1 и 3 и тд ...).
Второй вопрос, конечно: что, если у меня 1000 предметов;как мне тогда эффективно это сделать, потому что тогда у меня есть 999 ковариационных чисел на элемент и, таким образом, 999 дополнительных столбцов, а также 999 * 25 дополнительных столбцов, если я вычисляю их по вышеуказанной методике.Так как мне выполнить этот расчет для каждого элемента максимально эффективно?