GroupBy pandas DataFrame y seleccione el valor más común

Tengo un marco de datos con tres columnas de cadena. Sé que el único valor en la tercera columna es válido para cada combinación de las dos primeras. Para limpiar los datos, tengo que agrupar por cuadro de datos por las dos primeras columnas y seleccionar el valor más común de la tercera columna para cada combinación.

Mi código:

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 última línea de código no funciona, dice "Error de clave 'Nombre corto'" y si intento agrupar solo por Ciudad, obtengo un error de aserción. ¿Qué puedo hacer para solucionarlo?

Respuestas a la pregunta(8)

Su respuesta a la pregunta