Bonjour à toutes et tous .

Voilà je débute en python et je me frotte à un problème avec un fichier csv. Mon problème vas sans doute vous paraître trivial mais je ne lui trouve pas de solution dans les doc.

Pour l'exercice j'ai créer le fichier suivant cours.csv suivant :

A,B,C,D
1,2,3,4
5,6,7,8
9,10,11,12
13,14,15,16

je l'importe comme ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
import csv # on importe la bibliothèque csv
f=open('cours.csv') # création de la variable lien vers notre fichier csv
fichiercsv=csv.reader(f) # ouverture de la variable f dans l'instruction reader 
for ligne in fichiercsv:
    print(ligne) # pour chaque ligne appartennant au fichier csv, écrire le contenu de la ligne.
je voudrais pouvoir pouvoir appliquer des formules au contenu de mes colonnes donc je redéfinit mes listes comme ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
 
liste1 = [] #On définit des variables 'listes' vides.
liste2 = []
liste3 = []
liste4 = []
 
for ligne in fichiercsv: # pour chaque ligne appartenant à 'cours.csv' :
    a = ligne[0] # ligne indice [0] donc ligne ['A', 'B', 'C', 'D']
    b = ligne[1] # ligne indice [1] donc ligne ['1', '2', '3', '4']
    c = ligne[2] # //
    d = ligne[3] # //
 
    liste1.append(a) # on ajoute la variable 'a' à la 'liste1'
    liste2.append(b) # on ajoute la variable 'b' à la 'liste2'
    liste3.append(c) # //
    liste4.append(d) # //
 
print(liste1) # on imprime les lignes précédement définies. 
print(liste2)
print(liste3)
print(liste4)
ce qui me donne ceci :
['A', '1', '5', '9', '13']
['B', '2', '6', '10', '14']
['C', '3', '7', '11', '15']
['D', '4', '8', '12', '16']

Le problème, c'est que mes valeurs numériques sont des chaines, je ne peu donc pas travailler avec. j'ai donc essayer faire passer mes mavleurs numériques en float comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
for ligne in fichiercsv: # pour chaque ligne appartenant à 'cours.csv' :
 
    a = float (ligne[0]) # ligne indice [0] donc ligne ['A', 'B', 'C', 'D']
    b = float (ligne[1]) # ligne indice [1] donc ligne ['1', '2', '3', '4']
    c = float(ligne[2]) # //
    d = float (ligne[3]) # //
Mais la drame... Les lettre ne passent pas en float ... Ce qui est logique.

Ma question est donc la suivante : comment faire pour garder les chaines de ma ligne[0] tout en passant les autres lignes 1,2 et 3 en float ?

Merci beaucoup pour votre aide.
( message sans doute un peu trop long mais je retranscrit ma réflexion complète pour être claire ^^ )