Вы можете читать Excel с помощью:
input_df = pd.read_excel('../../../../Downloads/test.xlsx', sheet_name='input').fillna(method='ffill')
valuate_df = pd.read_excel('../../../../Downloads/test.xlsx', sheet_name='valuate').fillna(method='ffill')
Затем вы должны объединить их в одну таблицу. Если вы уверены, что они имеют одинаковый порядок, используйте это:
df = input_df.join(valuate_df[['Weight', 'Level score']])
Он выбирает два столбца ['Weight', 'Level score'] из таблицы значений и объединяет их в первую таблицу. У вас будет новая таблица, подобная этой:
Evaluation type Evaluation module Evaluation index Unnamed: 3 Evaluation content Division level Input Weight Level score
0 Business application security User Management Ordinary account authentication NaN Evaluation item 1 Level 3 0 0.010490 3
1 Business application security User Management Ordinary account authentication NaN Evaluation item 2 Level 3 1 0.010490 3
2 Business application security User Management Ordinary account authentication NaN Evaluation item 3 Level 3 1 0.010490 3
3 Business application security User Management Public account identity verification NaN Evaluation item 1 Second level 0 0.006993 2
4 Business platform security Business platform deployment Platform equipment information record NaN Evaluation item 1 Second level 1 0.006993 2
5 Business platform security Business platform deployment Facility distribution at home and abroad NaN Evaluation item 1 Level 3 1 0.010490 3
6 Business platform security Resource Scheduling Real-time resource monitoring NaN Evaluation item 1 Second level 0 0.006993 2
7 Business platform security Resource Scheduling Detection and processing of illegal information NaN Evaluation item 1 Second level 0 0.006993 2
8 Business platform security Resource Scheduling System log retention NaN Evaluation item 1 Level 3 0 0.010490 3
Теперь вы можете выбрать строки, где Input не равно 0:
df = df[df.Input!=0]
, а затем подсчитать общий балл:
total_score = sum(df['Level score'] * df['Weight'])
Итак, общий балл для этого примера 0.1083915
, не так ли?