У меня есть следующий фрейм данных CSV df
, импортированный с использованием pandas df= pd.read_csv("Example.csv", header=0, index_col="Forest")
(значения numeri c - это расстояния)
Forest,Bell Bay,Surrey Hills,Smithton,Hobart
Coupe 1,158,194,10,49
Coupe 2,156,169,71,84
Coupe 3,10,186,101,163
Coupe 4,47,94,134,139
Coupe 5,144,61,135,56
Coupe 6,27,27,134,36
Coupe 7,114,4,143,113
Coupe 8,71,170,190,140
Coupe 9,94,54,73,128
Coupe 10,46,194,92,36
У меня импортирован второй фрейм данных df2
с использованием df2 = pd.read_csv("ExampleSupply.csv", header=0, index_col="Forest")
(числовые значения c являются объемами поставки)
Forest,Supply
Coupe 1,600
Coupe 2,100
Coupe 3,900
Coupe 4,300
Coupe 5,300
Coupe 6,400
Coupe 7,900
Coupe 8,700
Coupe 9,500
Coupe 10,300
Столбец Forest
соответствует двум фреймам данных. Я создал список лесов I
из df
, используя:
I = df.index.tolist()
Результат:
['Coupe 1', 'Coupe 2', 'Coupe 3', 'Coupe 4', 'Coupe 5', 'Coupe 6', 'Coupe 7', 'Coupe 8', 'Coupe 9', 'Coupe 10']
И список мест назначения J
в df
, используя:
J = df.columns.values.tolist()
Результат:
['Bell Bay', 'Surrey Hills', 'Smithton', 'Hobart']
Список кортежей (дуг) был создан с использованием:
arcs = [(i, j) for i in I for j in J]
Результат:
[('Coupe 1', 'Bell Bay'), ('Coupe 1', 'Surrey Hills'), ('Coupe 1', 'Smithton'), ('Coupe 1', 'Hobart'), ('Coupe 2', 'Bell Bay'), ('Coupe 2', 'Surrey Hills'), ('Coupe 2', 'Smithton'), ('Coupe 2', 'Hobart'), ('Coupe 3', 'Bell Bay'), ('Coupe 3', 'Surrey Hills'), ('Coupe 3', 'Smithton'), ('Coupe 3', 'Hobart'), ('Coupe 4', 'Bell Bay'), ('Coupe 4', 'Surrey Hills'), ('Coupe 4', 'Smithton'), ('Coupe 4', 'Hobart'), ('Coupe 5', 'Bell Bay'), ('Coupe 5', 'Surrey Hills'), ('Coupe 5', 'Smithton'), ('Coupe 5', 'Hobart'), ('Coupe 6', 'Bell Bay'), ('Coupe 6', 'Surrey Hills'), ('Coupe 6', 'Smithton'), ('Coupe 6', 'Hobart'), ('Coupe 7', 'Bell Bay'), ('Coupe 7', 'Surrey Hills'), ('Coupe 7', 'Smithton'), ('Coupe 7', 'Hobart'), ('Coupe 8', 'Bell Bay'), ('Coupe 8', 'Surrey Hills'), ('Coupe 8', 'Smithton'), ('Coupe 8', 'Hobart'), ('Coupe 9', 'Bell Bay'), ('Coupe 9', 'Surrey Hills'), ('Coupe 9', 'Smithton'), ('Coupe 9', 'Hobart'), ('Coupe 10', 'Bell Bay'), ('Coupe 10', 'Surrey Hills'), ('Coupe 10', 'Smithton'), ('Coupe 10', 'Hobart')]
Я хочу создать словарь row index
в df
(это относится к Forest
в I
) и количественных значений в df2
. Словарь должен выглядеть так:
dQ = {'Coupe 1': 600, 'Coupe 2': 100, 'Coupe 3': 900, 'Coupe 4': 300, 'Coupe 5': 300, 'Coupe 6': 400, 'Coupe 7': 900, 'Coupe 8': 700, 'Coupe 9': 500, 'Coupe 10': 300}
Значения количества Supply
в df2
должны быть связаны с Forest
в df
путем ссылки на список I
или клавишу в arcs
.
Кто-нибудь может предложить лучший способ составить этот словарь? Это только небольшой набор I (10) и J (4) в объединенной матрице. Мои методы должны быть применимы к очень большим наборам данных с более чем 10 миллионами комбинаций I * J. Помощь будет очень признательна!