Eliminer enregistrements

Résolu
chaldeen -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
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

mamiemando Messages postés 33744 Date d'inscription   Statut Modérateur Dernière intervention   7 871
 
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
1
chaldeen
 
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 !
0
mamiemando Messages postés 33744 Date d'inscription   Statut Modérateur Dernière intervention   7 871
 
Merci pour les précisions, bonne continuation !
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 583
 
bonjour,
sans doute:
data = []
for row in df_data_mesures:
    if row['Id_compteur'] in list:
        data.append(row)
0