У меня есть кадр данных с тремя строковыми столбцами. Я знаю, что единственное значение в третьем столбце допустимо для каждой комбинации первых двух. Чтобы очистить данные, мне нужно сгруппировать по кадру данных первые два столбца и выбрать наиболее распространенное значение третьего столбца для каждой комбинации.
Мой код:
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. Что я могу исправить?