Maison  >  Article  >  développement back-end  >  Le chaînage d’opérateurs peut-il être utilisé pour filtrer les lignes DataFrame dans Pandas ?

Le chaînage d’opérateurs peut-il être utilisé pour filtrer les lignes DataFrame dans Pandas ?

DDD
DDDoriginal
2024-11-04 04:50:29958parcourir

Can Operator Chaining Be Used to Filter DataFrame Rows in Pandas?

Pandas : filtrer les lignes du DataFrame avec le chaînage d'opérateurs

De nombreuses opérations Pandas peuvent être effectuées via le chaînage d'opérateurs, notamment le regroupement, l'agrégation et l'application. Cependant, le filtrage des lignes est généralement effectué à l'aide de l'indexation par parenthèses traditionnelle.

df_filtered = df[df['column'] == value]

Cette approche nécessite d'attribuer df à une variable avant le filtrage, ce qui peut être fastidieux. Existe-t-il un moyen plus pratique d'enchaîner les opérations de filtrage ?

Réponse :

Bien que la dernière ligne de code fournie dans la question ne soit pas claire, le filtrage « enchaîné » peut être obtenu en chaînant des critères dans l'index booléen.

df[(df.A == 1) & (df.D == 6)]

De plus, les utilisateurs peuvent définir leur propre méthode de masque et l'utiliser pour le filtrage :

def mask(df, key, value):
    return df[df[key] == value]

pandas.DataFrame.mask = mask

df = pandas.DataFrame(np.random.randint(0, 10, (4,4)), index=list('abcd'), columns=list('ABCD'))

df.mask('A', 1)
df.mask('A', 1).mask('D', 6)

Cela permet un chaînage pratique des opérations de filtrage .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn