J'ai un cadre de données avec trois colonnes de chaînes. Je sais que la seule valeur de la troisième colonne est valable pour chaque combinaison des deux premières. Pour nettoyer les données, je dois grouper le cadre de données par les deux premières colonnes et sélectionner la valeur la plus courante de la troisième colonne pour chaque combinaison.
Mon code :
import pandas as pd
from scipy import stats
source = pd.DataFrame({'Country' : ['USA', 'USA', 'Russia','USA'],
'City' : ['New-York', 'New-York', 'Sankt-Petersburg', 'New-York'],
'Short name' : ['NY','New','Spb','NY']})
print source.groupby(['Country','City']).agg(lambda x: stats.mode(x['Short name'])[0])
La dernière ligne de code ne fonctionne pas, elle indique "Key error 'Short name'" et si j'essaie de regrouper uniquement par ville, j'obtiens un AssertionError. Que puis-je faire pour corriger cela ?