Понимание словаря: заполнение столбца на основе столбцов с 1 листа и соответствующих значений из другого листа.
Я работаю над некоторыми данными о претензиях, в которых у меня есть такие функции, как (изображение вставлено ниже):введите описание изображения здесь
Описания столбцов: (A) год подачи претензии, (B) страховая компания (C) управляемое транспортное средство, (D) код обстоятельств (E) задержка в предъявлении претензии (F) Возраст транспортного средства (G) Убытки (H) Экономия. Столбцы «Повреждения» и «Экономия» пусты, я должен заполнить столбцы «Повреждения и сбережения» весами / значениями каждого из столбцов (A) - (F). Вес этих столбцов указан в другой таблице. Другая электронная таблица снова имеет 2 листа (i) - значения убытков и (ii) - значения экономии. Я создал простой код понимания словаря, подобный этому: Второе изображение электронной таблицы (изображение встроено ниже):введите здесь описание изображения**
import pandas as pd
import numpy as np
import openpyxl
from pathlib import Path
damages = 6.5143
savings = -1.6044
year = {}
driven = {}
vehicle_age = {}
insurer = {}
code = {}
delay = {}
my_dic = pd.read_excel("values111.xlsx", index_col=None)
df = pd.read_csv("input.csv")
cols = list(df)
year = dict(zip(my_dic.year, my_dic.year_values))
driven = dict(zip(my_dic.driven, my_dic.driven_values))
age = dict(zip(my_dic.vehicle_age, my_dic.vehicle_age_values))
insurer = dict(zip(my_dic.insurer, my_dic.insurer_values))
code = dict(zip(my_dic.code, my_dic.code_values))
delay = dict(zip(my_dic.delay, my_dic.delay_values))
list_of_df = df.to_numpy().tolist()
#list_of_df = df.to_numpy().tolist()
for i in list_of_df:
damages = 6.5143
damages = damages + year[i[1]]
damages = damages + driven[i[3]]
damages = damages + insurer[i[2]]
damages = damages + code[i[4]]
damages = damages + delay[i[5]]
i[7] = damages
New_df = pd.DataFrame(list_of_df, columns=cols)
(New_df)
**
Однако я хотел проверить, есть ли лучший подход / альтернатива, чем этот подход. Более комплексный подход, позволяющий избежать циклов for. Я чувствую, что здесь немного жестко запрограммировано, используется подход с множеством индексов (индексирование столбцов). В исходном наборе данных много столбцов, выдача индексов может быть громоздкой. Таблицы значений столбцов, в которых присутствуют эти веса, имеют отдельные листы повреждений и сбережений. Как-нибудь, если бы это можно было легко включить, не выполняя вычислений два раза. Пожалуйста, предложите.