Supposons que vous disposiez d'un bloc de données avec plusieurs colonnes de chaînes. Chaque combinaison des deux premières colonnes ne doit avoir qu'une seule valeur valide dans la troisième colonne. Vous devez nettoyer les données de manière cohérente en regroupant le bloc de données par les deux premières colonnes et en sélectionnant la valeur la plus courante de la troisième colonne pour chaque combinaison.
Le code suivant démontre une tentative pour y parvenir :
import pandas as pd<br>from scipy import stats</p> <p>source = pd.DataFrame({</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">'Country': ['USA', 'USA', 'Russia', 'USA'], 'City': ['New-York', 'New-York', 'Sankt-Petersburg', 'New-York'], 'Short name': ['NY', 'New', 'Spb', 'NY']})
source.groupby(['Pays','Ville']).agg(lambda x: stats.mode(x[' Nom court'])(0])
Cependant, le la dernière ligne de code échoue avec une KeyError. Comment pouvez-vous résoudre ce problème ?
Pour les versions Pandas 0.16 et versions ultérieures, utilisez le code suivant :
source.groupby(['Country','City'])['Short name'].agg(pd.Series.mode) <br>
Ce code utilise la fonction pd.Series.mode, qui a été introduite dans Pandas 0.16, pour trouver la valeur la plus courante dans chaque groupe.
La fonction Series.mode gère les cas avec plusieurs modes effectivement :
< h4>Alternatives à Considérez
Bien que vous puissiez utiliser Statistics.mode à partir de Python, il ne gère pas bien plusieurs modes et peut générer une StatisticsError. Par conséquent, ce n’est pas recommandé.
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!