Maison >développement back-end >Tutoriel Python >Comment diviser Pandas DataFrame en sous-ensembles en fonction de la valeur de la colonne ?
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>
A Sales 0 3 10 1 4 20 2 7 30 3 6 40 4 1 50
<code class="python"># Split the DataFrame based on "Sales" values s = 30 df1 = df[df['Sales'] >= s] print (df1)</code>
A Sales 2 7 30 3 6 40 4 1 50
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)
A Sales 0 3 10 1 4 20
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>
A Sales 2 7 30 3 6 40 4 1 50
<code class="python">print (df2)</code>
A Sales 0 3 10 1 4 20
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!