Maison >développement back-end >Tutoriel Python >Comment supprimer des lignes d'un DataFrame Pandas en fonction d'une expression conditionnelle ?

Comment supprimer des lignes d'un DataFrame Pandas en fonction d'une expression conditionnelle ?

DDD
DDDoriginal
2024-11-13 15:23:02702parcourir

How to Delete Rows from a Pandas DataFrame Based on a Conditional Expression?

Suppression de lignes du DataFrame Pandas en fonction de l'expression conditionnelle

Votre approche d'utilisation de df[(len(df['column name']) < 2)] pour supprimer les lignes dont la longueur de chaîne dépasse 2 est incorrect. Cela entraîne une KeyError car l'expression est évaluée comme un DataFrame booléen avec les clés True et False, plutôt que des indices de ligne.

Pour supprimer des lignes en fonction d'une expression conditionnelle, vous pouvez utiliser la méthode drop. Voici comment cela fonctionne :

Utiliser drop() pour supprimer des lignes

df = df.drop(df[df['column name'].str.len() > 2].index)</p>
<p>Dans cet exemple, df['column name'].str.len() > 2 crée un DataFrame booléen indiquant les lignes dont la longueur de chaîne est supérieure à 2. L'attribut index de ce DataFrame récupère les indices de ces lignes, qui sont ensuite transmis à drop().</p>
<p><strong>Syntaxe alternative</strong> </p>
<pre class="brush:php;toolbar:false">df = df.drop(df[(df['column name'].str.len() > 2)].index)

Cette syntaxe fournit une séparation plus claire entre le DataFrame booléen et l'index extraction.

Conditions multiples

L'indexation booléenne vous permet de combiner des conditions à l'aide d'opérateurs logiques. Par exemple, pour supprimer les lignes dont la longueur de la chaîne dépasse 2 et le score est inférieur à 50 :

df = df.drop(df[(df['column name'].str.len() > 2) & (df['score'] < 50)].index)

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