Traitement de données par une boucle for

Fermé
lessej - 6 mai 2021 à 14:54
jee pee Messages postés 39824 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 6 juin 2024 - 6 mai 2021 à 15:40
Bonjour,
J'ai un projet de modélisation en python à faire où je dois traiter des données de précipitations et de températures de plusieurs villes. Le problème c'est qu'elles ont toutes des tailles différentes.
J'ai donc crée un tableau avec les dates associés à chaque données et je voulais faire une boucle pour garder uniquement les dates communes de toutes les villes.

Je met la boucle for (qui ne marche, je vois pas pourquoi d'ailleurs).

A=[]
for i in range (len(DateCap)-1):
    
    for j in range (len(DateMari)-1):
        
        if DateMari[j]== DateCap[i]:
            A.append(DateMari[j])
            
        else:
            DateMari[j]= DateMari[j+1]
            
print(len(A))


DateCap correspond à la ville qui a le moins de date, c'est elle que j'ai choisi comme référence.
Configuration: Windows / Chrome 90.0.4430.93
A voir également:

2 réponses

jee pee Messages postés 39824 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 6 juin 2024 9 214
Modifié le 6 mai 2021 à 15:23
Bonjour,

Les lignes 9 et 10 ??? ça ne sert à rien. Il ne faut pas mettre -1 sur les ranges. Et surtout il faudrait étudier le type de ton champ date, un champ texte, ou datetime, ... : https://python-simple.com/python-modules-autres/date-et-temps.php

Car ça, cela fonctionne :
DateCap=["01/04/2020","01/01/2020","01/02/2020","01/05/2020"]
DateMari=["01/02/2020","02/01/2020","01/04/2020","01/05/2020"]
A=[]
for i in range (len(DateCap)):
   for j in range (len(DateMari)):
      if DateMari[j]== DateCap[i]:
         A.append(DateMari[j])
print(A) 


Mais avec un champ datetime, il faudrait extraire la date pour le test d'égalité.

0
Merci pour votre réponse!
Les dates sont écrite comme des nombres j'ai l'impression, par exemple pour 20-01-2020 on a 20200120.
Je vais essayer de les passer en datetime et refaire la boucle
0
jee pee Messages postés 39824 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 6 juin 2024 9 214
6 mai 2021 à 15:40
en nombre aussi cela devrait fonctionner fait un
print(type(DateMari[j]))
pour vérifier
0