Bonsoir,
Je suis bloquée dans un projet, je pense à cause d'une erreur de logique que je n'arrive pas à détecter. Mon but est de créer une liste de chaines de caractères à partir de colonnes d'un Dataframe. Ensuite je dois créer une deuxième liste en modifiant les noms de la première liste. Ensuite je dois calculer des coefficients par rapport à des valeurs qui sont dans mon dataframe. Je voudrais ensuite que chaque colonne de coefficients forme une liste qui prenne le nom de colonne que j'ai défini dans ma deuxième liste de noms.
En somme :
liste_nom_col = [nom_col_1,nom_col_2]
liste_nom_col_coef = [nom_col_1_coef,nom_col_2_coef]
calcul des coef de nom_col_1_coef et nom_col_2_coef à partir des valeurs dans nom_col_1 et nom_col_2 respectivement
créer des listes dont les noms sont nom_col_1_coef et nom_col_2_coef, et qui soient remplies avec les valeurs des coef respectives
Voilà ce que j'ai fait :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| #Caractéristiques de la portion de Dataframe à utiliser
colonne=df.shape[1]-4
ligne=df.shape[0]
print(colonne,ligne)
#Créer une liste avec les nom des colonnes du Dataframe à utiliser
list_days=df.columns[4:].values.tolist()
print('list_day :', list_days)
#Créer une liste des noms des colonnes (sous forme de liste) à utiliser pour stocker les coefs s
list_days_s = []
for d in range(colonne):
>list_days_s.append(list_days[d]+'_s')
print("list_days_s",list_days_s)
#Définiton de la fonction pour calculer le coef s pour chaque ligne de chaque colonne
def coef_s(colonne,ligne):
>for n in range(colonne):
>> list_days_s[n] = [] #créer une liste vide pour accueillir les valeurs de s associées
>> for i in range(ligne):
>>>s = 2000 * float(df.loc[i][4+n]) / 17500 #df.loc[row][colum] --> retourne ce qui a dans la case sous forme de chaine (string), ligne et colonne doivent être des nombres
>>>list_days_s[n].append(s)
>>return list_days_s[n]
>return list_days_s
coef_s(colonne,ligne) |
Et voilà ce que j'obtiens :
3 13
list_day : ['22_ma_dead', '29_ma_dead', '05_ap_dead']
list_days_s ['22_ma_dead_s', '29_ma_dead_s', '05_ap_dead_s']
[1106.857142857143,
458.62857142857143,
145.37142857142857,
246.74285714285713,
18.17142857142857,
983.0857142857143,
794.8571428571429,
1848.1142857142856,
283.54285714285714,
351.8857142857143,
397.7142857142857,
249.6,
734.8571428571429]
Or je voudrais trois listes comme celle-ci !
Est-ce que quelqu'un pourrait m'éclairer s'il-vous-plait ?
Merci beaucoup par avance !
Partager