Comment diviser Pandas DataFrame en sous-ensembles en fonction de la valeur de la colonne ?

Barbara Streisand
Libérer: 2024-10-19 22:33:02
original
660 Les gens l'ont consulté

How to Split Pandas DataFrame into Subsets Based on Column Value?

Diviser le DataFrame Pandas en fonction de la valeur de la colonne

Dans Pandas, un scénario couramment rencontré est la nécessité de diviser un DataFrame en plusieurs sous-ensembles en fonction de les valeurs présentes dans une colonne spécifique. Cela permet une analyse et une manipulation ciblées des données.

Pour y parvenir, nous pouvons exploiter la puissance de l'indexation booléenne dans Pandas. Considérons un DataFrame avec une colonne nommée « Ventes » et explorons comment nous pouvons la diviser en deux selon que la valeur « Ventes » est inférieure ou supérieure à une valeur seuil « s ».

Solution :

<code class="python"># Create a DataFrame with a "Sales" column
df = pd.DataFrame({'Sales':[10,20,30,40,50], 'A':[3,4,7,6,1]})
print (df)</code>
Copier après la connexion
   A  Sales
0  3     10
1  4     20
2  7     30
3  6     40
4  1     50
Copier après la connexion
<code class="python"># Split the DataFrame based on "Sales" values
s = 30

df1 = df[df['Sales'] >= s]
print (df1)</code>
Copier après la connexion
   A  Sales
2  7     30
3  6     40
4  1     50
Copier après la connexion
Copier après la connexion

Cela crée un nouveau DataFrame, df1, qui contient les lignes où la valeur « Ventes » est supérieure ou égale à « s ».

<code class="python">df2 = df[df['Sales'] < s]
print (df2)
Copier après la connexion
   A  Sales
0  3     10
1  4     20
Copier après la connexion
Copier après la connexion

df2 comprend les lignes où la valeur « Ventes » est inférieure à « s ».

Approche alternative utilisant la négation au niveau du bit :

Au lieu d'utiliser l'opérateur supérieur ou égal à, nous pouvons également utiliser la négation au niveau du bit (~) pour inverser le masque :

<code class="python">mask = df['Sales'] >= s
df1 = df[mask]
df2 = df[~mask]
print (df1)</code>
Copier après la connexion
   A  Sales
2  7     30
3  6     40
4  1     50
Copier après la connexion
Copier après la connexion
<code class="python">print (df2)</code>
Copier après la connexion
   A  Sales
0  3     10
1  4     20
Copier après la connexion
Copier après la connexion

Cette approche atteint l'objectif même répartition mais permet un style de codage plus concis et optimisé.

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!