Я пытаюсь выяснить, как перераспределить числовые значения между несколькими кадрами данных на основе определенных критериев, я не уверен, как именно go об этом.
Для этой цели я создал 3 небольших выборки DataFrames.
import pandas as pd
first = {'id_1': ['a','b','c'],
'stock_1': [7,2,3]}
df1 = pd.DataFrame(first, columns = ['id_1','stock_1'])
print(df1)
second = {'id_2': ['a','b','c'],
'stock_2': [1,2,6]}
df2 = pd.DataFrame(second, columns = ['id_2','stock_2'])
print(df2)
third = {'id_3': ['a','b','c'],
'stock_3': [5,6,1]}
df3 = pd.DataFrame(third, columns = ['id_3','stock_3'])
print(df3)
id_1 stock_1
0 a 7
1 b 2
2 c 3
id_2 stock_2
0 a 1
1 b 2
2 c 6
id_3 stock_3
0 a 5
1 b 6
2 c 1
Теперь я пытаюсь выяснить, как написать функцию, которая будет перепроверять все значения для всех 3 элементов и перераспределять их таким образом, чтобы искать MAX и MIN (a, b, c), затем вычитает из MAX и добавляет к MIN до AVG.
Я бы хотел, чтобы результирующие таблицы выглядели примерно так:
id_1 stock_1
0 a 4
1 b 3
2 c 3
id_2 stock_2
0 a 4
1 b 3
2 c 4
id_3 stock_3
0 a 5
1 b 4
2 c 3
Если мы смотрим на элемент 'a' в все 3 кадра данных мы получаем значения; 7, 1, 5, где 7 - МАКС, а 1 - МИН.
AVG, когда округление равно (7 + 1 + 5) / 3 = 4
, поэтому для добавления правильной суммы к MIN необходимо знать разницу между AVG и MIN
(AVG - MIN) = (4-1) = 3 давайте назовем его DIF
, поэтому я думаю, что мы должны добавить DIF к MIN
(DIF + MIN) = (3 +1) = 4
и вычтите DIF из MAX, чтобы получить новые значения
(MAX - DIF) = (7-3) = 4