我有一个数据框,其中有三列字符串。我知道第三列中只有一个值对于前两列的每个组合是有效的。为了清理数据,我需要按照前两列对数据框进行分组,并选择每个组合中第三列的最常见值。
我的代码:
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: 'Short name'
的错误,如果我仅按城市分组,则会得到一个断言失败的错误。我该怎么解决?