Pour nettoyer les données contenant plusieurs colonnes de chaîne, il est nécessaire de regrouper les lignes par certaines colonnes et de sélectionner la valeur la plus courante. valeur commune pour une colonne spécifique au sein de chaque groupe. Cet article montre comment accomplir cette tâche à l'aide de la puissante bibliothèque Pandas.
Le code fourni dans la requête initiale contient certaines erreurs, qui ont été corrigées ci-dessous :
import pandas as pd source = pd.DataFrame({ 'Country': ['USA', 'USA', 'Russia', 'USA'], 'City': ['New York', 'New York', 'Saint Petersburg', 'New York'], 'Short Name': ['NY', 'New', 'Spb', 'NY']}) # Group by 'Country' and 'City' and calculate the most frequent 'Short Name' in each group result = source.groupby(['Country', 'City'])['Short Name'].apply(lambda x: pd.Series.mode(x)[0][0])
Si un DataFrame est préféré comme résultat :
result = source.groupby(['Country', 'City'])['Short Name'].agg(pd.Series.mode).to_frame()
Si vous souhaitez des lignes séparées pour chacun mode :
result = source.groupby(['Country', 'City'])['Short Name'].apply(pd.Series.mode)
Remarque : Si vous êtes prêt à accepter n'importe quelle valeur de mode comme sélection, vous pouvez utiliser une fonction lambda qui extrait le premier mode de la série :
result = source.groupby(['Country', 'City'])['Short Name'].agg(lambda x: pd.Series.mode(x)[0])
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!