如何解决Python-通过熊猫DataFrame分组并选择最常用的值
你可以value_counts()
用来获取计数系列,并获取第一行:
import pandas as pd
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:x.value_counts().index[0])
解决方法
我有一个包含三个字符串列的数据框。我知道第三列中的唯一一个值对于前两个的每种组合都有效。为了清理数据,我必须按前两列按数据帧分组,并为每种组合选择第三列的最常用值。
我的代码:
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])
最后一行代码不起作用,它显示“ Key error’Short name’”,如果我尝试仅按城市分组,则会收到AssertionError。我该如何解决?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。