У меня есть фрейм данных с тремя строковыми столбцами. Я знаю, что только одно значение в третьем столбце действительно для каждой комбинации первых двух. Чтобы очистить данные, мне нужно сгруппировать их по фрейму данных по первым двум столбцам и выбрать наиболее распространенное значение третьего столбца для каждой комбинации.
Мой код:
Код: Выделить всё
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']})
source.groupby(['Country','City']).agg(lambda x: stats.mode(x['Short name'])[0])
Последняя строка кода не работает, там написано KeyError: «Короткое имя», и если я попытаюсь сгруппировать только по городу, то получу AssertionError. Что я могу сделать, чтобы это исправить?
Подробнее здесь:
https://stackoverflow.com/questions/152 ... mmon-value