Eliminer enregistrements [Résolu]

Signaler
-
Messages postés
15593
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
14 mai 2021
-
Bonjour,

Je rencontre un problème sur lequel je ne pensais pas buter si longtemps, mais je ne trouve pas la solution.
En bref, je possède un dataframe sur lequel j'aimerais ne garder que les enregistrements dont l'Id_compteur figure dans la liste 'list' (qui correspond en réalité aux Id d'une autre table.
J'ai testé ce code en créant une liste 'data', ainsi qu'en créant un dataframe 'data' également, mais j'ignore ce qui bloque jusque-là.

data = []
for row in df_data_mesures:
if df_data_mesures['Id_compteur'] in list:
data.append(row)


ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().


Merci à vous

3 réponses

Messages postés
29801
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
12 mai 2021
7 089
Bonjour,

df_data_mesures['Id_compteur']
désigne une série de valeurs, et non une seule valeur.

Du coup,
pandas
te dis que ton test est ambigu, car il n'est pas clair si le test doit s'appliquer à certains (
any
) ou tous (
all
) les éléments de la série.

Dans ton cas, je pense que tu veux plutôt filtrer certaines valeurs de cette série, comme le permet la méthode
isin
.

Bonne chance
Bonjour,

Je me suis plus précisément servi sur ce forum : https://stackoverflow.com/questions/19960077/how-to-filter-pandas-dataframe-using-in-and-not-in-like-in-sql

Merci beaucoup !
Messages postés
29801
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
12 mai 2021
7 089
Merci pour les précisions, bonne continuation !
Messages postés
15593
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
14 mai 2021
854
bonjour,
sans doute:
data = []
for row in df_data_mesures:
    if row['Id_compteur'] in list:
        data.append(row)