我有一个包含三个字符串列的数据框架。我知道第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']})
source.groupby(['Country','City']).agg(lambda x: stats.mode(x['Short name'])[0])
最后一行代码不起作用,它显示的是 KeyError: 'Short name'
,如果我试图仅按城市分组,那么我得到了一个 AssertionError。我能做什么?