Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
744 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  [Python] Itération sur un DataFrame (pandas)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Python] Itération sur un DataFrame (pandas)

n°2387006
ancestor1
Posté le 02-06-2021 à 18:14:39  profilanswer
 

Bonjour à tous,  
 
Pour commencer, je tiens à préciser que je suis nouveau sur ce forum et ultra-débutant en Python.
Toutes mes excuses si ma question vous parait stupide.
Etant habitué à coder en Java, j'ai du mal à appréhender certains aspect du langage (sans parler du débuggage...)
Voici mon problème :  
J'ai un objet data de type <class 'pandas.core.frame.DataFrame'> dont voici un échantillon :  
                      value
timestamp                  
2020-08-11 06:00:00  2.9515
2020-08-11 07:00:00  2.9224
2020-08-11 08:00:00  2.9600
2020-08-11 09:00:00  2.8543
2020-08-11 10:00:00  2.8976
 
Je souhaiterais ajouter une colonne à ce dataFrame, cette nouvelle colonne contenant un filtre de la colonne value.
La nouvelle colonne "Filter" doit contenir des valeurs dont la formule est du type data['Filter'][i] = a * data['Value'][i] + b*data['Value'][i-1] +c* data['Filter'][i-1].
J'ai essayé de parcourir data avec un index i et récupérer la ligne correspondante avec data.iloc(i) mais j'obtiens une erreur "ValueError: No axis named 5 for object type DataFrame"
Quelqu'un pour éclairer ma lanterne ?
Merci !

mood
Publicité
Posté le 02-06-2021 à 18:14:39  profilanswer
 

n°2387096
ancestor1
Posté le 03-06-2021 à 14:06:20  profilanswer
 

Ok, je n'avais rien compris à la fonction iloc qui prend en paramètre un élément de l'index et pas son ordre (j'aurais du mettre un timestamp).
Si jamais un débutant tombe sur le même soucis que moi, j'ai utilisé les listes compréhension :  

Code :
  1. data['Filter'] = a*data['Value']
  2. data['Filter'] = [b*v1 + c*f1 for v1, f1 in zip(data['Value'].shift(1),data['Filter'].shift(1))]


Si quelqu'un a une meilleure solution je suis preneur !
Merci !

n°2387221
ancestor1
Posté le 04-06-2021 à 10:11:38  profilanswer
 

Bon ça ne fonctionne pas, le calcul n'est pas fait de manière séquentielle.
Je vais utiliser la méthode DataFrame.itertuples()


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  [Python] Itération sur un DataFrame (pandas)

 

Sujets relatifs
[python] Youtube comment downloader[Python] - Utilisation dictionnaire
Python et PillowXML espace dans les noms de noeud, acces en python
Mini projet python (Maintenance machines)Impossible d'exécuter un script Python
Utiliser une commande curl en Python[Python] Achat automatique AMAZON
IDLE Python 
Plus de sujets relatifs à : [Python] Itération sur un DataFrame (pandas)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR