Eliminer enregistrements

Résolu/Fermé
chaldeen - 12 avril 2021 à 19:36
yg_be Messages postés 20741 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 novembre 2022 - 13 avril 2021 à 21:55
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 31767 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 29 novembre 2022 7 485
Modifié le 13 avril 2021 à 01:56
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
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 31767 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 29 novembre 2022 7 485
13 avril 2021 à 21:18
Merci pour les précisions, bonne continuation !
0
yg_be Messages postés 20741 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 novembre 2022 1 268
13 avril 2021 à 21:55
bonjour,
sans doute:
data = []
for row in df_data_mesures:
    if row['Id_compteur'] in list:
        data.append(row)
0