在按id
聚合数据时,我希望找到animal
中出现最频繁的字符串值。如果计数相同,则选择animal
的最后一个值。
id animal date
0 1 dog 2018-01-01
1 1 dog 2018-01-02
2 1 cat 2018-01-03
3 2 cat 2018-01-01
4 3 dog 2018-01-01
5 4 fish 2018-01-01
6 5 dog 2018-01-01
7 5 cat 2018-01-02
输出应该类似于:
id animal
0 1 dog
1 2 cat
2 3 dog
3 4 fish
4 5 cat
我还不能成功地实现这个。我尝试使用 pd.get_dummies
和计算,但没有看起来那样。理想情况下,解决方案将使用内置的、向量化的 pandas/numpy,即过滤、连接、np.where 等,因为 groupby.apply
非常慢,而数据有点大。