import pandas as pd
# Exemple : Choisir un orchestrateur
criteria = {
'Critรจre': [
'Facilitรฉ d\'apprentissage',
'Scalabilitรฉ',
'Communautรฉ/Support',
'Coรปt opรฉrationnel',
'Intรฉgration cloud',
'Fonctionnalitรฉs avancรฉes'
],
'Poids': [3, 4, 3, 4, 3, 2], # Importance 1-5
'Airflow': [3, 5, 5, 3, 4, 5], # Score 1-5
'Prefect': [4, 4, 3, 4, 3, 4],
'Dagster': [3, 4, 3, 4, 3, 5],
'Step Functions': [4, 5, 4, 5, 5, 3]
}
df = pd.DataFrame(criteria)
# Calcul des scores pondรฉrรฉs
for option in ['Airflow', 'Prefect', 'Dagster', 'Step Functions']:
df[f'{option}_weighted'] = df['Poids'] * df[option]
# Totaux
totals = {
'Option': ['Airflow', 'Prefect', 'Dagster', 'Step Functions'],
'Score Total': [
df['Airflow_weighted'].sum(),
df['Prefect_weighted'].sum(),
df['Dagster_weighted'].sum(),
df['Step Functions_weighted'].sum()
]
}
print("๐ MATRICE DE DรCISION : Choix d'Orchestrateur")
print("="*60)
print(df[['Critรจre', 'Poids', 'Airflow', 'Prefect', 'Dagster', 'Step Functions']].to_string(index=False))
print("\n๐ SCORES TOTAUX (pondรฉrรฉs) :")
print("-"*40)
for opt, score in zip(totals['Option'], totals['Score Total']):
print(f" {opt:20} : {score}")
print("\nโ
Recommandation : " + totals['Option'][totals['Score Total'].index(max(totals['Score Total']))])