1 pièce(s) jointe(s)
Comment faire pour réaliser un équivalent de "RechercheV" avec Pyhton
Bonjour,
je dois faire des extractions de valeurs d'un fichier (cf pièce jointe) pour en faire ensuite des calculs.
dans mon cas je dois extraire toutes les valeurs de diamètre et de température pour la position 0, puis 0.5 ... (ces valeurs ne sont pas figées, elle varient suivant ce que je mesure) à chacune des rotations (ici la liste de valeurs de rotation est a priori figée).
ensuite je dois convertir les valeurs de daimètres de 20°C à la température T du fichier suivant un coefficient de dilatation et enfin, pour toutes les positions 0 existantes, je dois faire la moyenne des valeurs de diamètres... Suis-je claire ou c'est du charabia :?
Pièce jointe 146375
j'ai commencé par extraire de mon fichier les différentes listes
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| Extraction du fichier .csv et mise en forme de la liste
def extractioncsv(fichiercsv):
Rotationcsv = [] # Extraction des valeurs de la protation
Positioncsv = [] # Extraction des valeurs de la position des diamètres
VALmincsv = [] # Extraction des valeurs du diamètre min
VALmaxcsv = [] # Extraction des valeurs du diamètre max
VALmediancsv = [] # Extraction des valeurs du diamètre médian
Tcsv = [] # Extraction des valeurs de la température de la mesure du diamètre
with open(fichiercsv, 'rb') as fcsv:
lecteur = csv.reader(fcsv, delimiter=';')
for ligne in lecteur:
Rotationcsv.append(ligne[0])
Positioncsv.append(ligne[1])
VALmincsv.append(ligne[2])
VALmaxcsv.append(ligne[3])
VALmediancsv.append(ligne[4])
Tcsv.append(ligne[5])
del Rotationcsv[0:1], Positioncsv[0:1], VALmediancsv[0:1], Tcsv[0:1]
return Rotationcsv, Positioncsv, VALmincsv, VALmediancsv, VALmaxcsvv, Tcsv |
je ne mets pas le code intermédiaire
et de là je me dis que je dois créer une nouvelle liste genre bataille navale :
Code:
1 2 3
|
for nz in range(0,len(VALmediancsv)) :
NewDiam = VALmediancsv[nz]*(1+CoefDilatation*(Tcsv[nz]-20)] #conversion du diamètre à la température T |
et là je bloque...comment je peux lui dire que pour toutes les valeurs de position identique, je dois extraire les valeurs de NewDiam et en faire la moyenne.
Vous m'avez comprise, je sais faire un calcul de moyenne... mais je ne sais pas extraire les valeurs :(
je vous remercie pour votre aide.
Cdlt
Patricia
Bon, il y avait une petite erreur
dans mon calcul d'indice, et j'ai trouvé ça :
http://www.developpez.net/forums/d32...om-d-variable/
donc en l'applicant à mon cas ...
Code:
1 2 3
| for Pos in range(0, NbPos):
for Rot in range(0, NbRot):
exec("ListeMedian"+str(Pos)+"='"+medianDECC[Pos+NbPos*Rot]+"'") |
mais ça me retourne l'erreur suivante
Code:
1 2
| exec("ListeMedian"+str(Pos)+"='"+medianDECC[Pos+NbPos*Rot]+"'")
TypeError: cannot concatenate 'str' and 'float' objects |
avez-vous une idée du problème ?
Merci pour votre aide
Patricia
ne comprenant pas comment faire...
Et pourtant j'ai lu !
je me suis résolue à faire comme ça :
Code:
1 2 3 4 5 6 7 8 9 10
|
DECCcsv = extractioncsv(fileDECC)
v = array(DECCcsv)
for i in range(0, NbPos):
for j in range(0, NbRot):
t = v[-1, i+NbPos*j]
DECC = v[-3, i+NbPos*j]
DECC23 = float(DECC)*(1+CoefDil*(float(t)-20))
ListeDECC23.append(DECC23) |
Pour les puristes, ça ne plaira pas, mais au moins ça fait ce que je veux.
Merci encore
Patricia