GroupBy панды DataFrame и выберите наиболее распространенное значение
У меня есть фрейм данных с тремя строковыми столбцами. Я знаю, что единственное значение в 3-м столбце действительно для каждой комбинации первых двух. Чтобы очистить данные, мне нужно сгруппировать данные по фрейму данных по первым двум столбцам и выбрать наиболее распространенное значение третьего столбца для каждой комбинации.
Мой код:
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])
Последняя строка кода нет работает, говоритОшибка ключа 'Короткое имя'" и если я пытаюсь сгруппировать только по городам, я получаю ошибку AssertionError. Что я могу сделать это исправить?