gpt4 book ai didi

python - Pandas :找到每个人最常见的字符串

转载 作者:行者123 更新时间:2023-11-28 19:03:35 25 4
gpt4 key购买 nike

当按id聚合数据时,我想找到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 非常慢并且数据有点大。

最佳答案

idanimal 列分组,并获取它们出现的 countlast 日期。

然后按idcountlast 对生成的数据帧进行排序,并删除 id 上的重复值,保留最后一行,根据我们的顺序,将给出最常见的动物,如果有两只动物,则为表中最后观察到的动物。最后,去掉多余的列 countlast

columns = ['id', 'animal']

df2 = df.groupby(columns).date.agg(['count', 'last']).reset_index()
df3 = df2.sort_values(['id', 'count', 'last'])
df3.drop_duplicates('id', keep='last')[columns]

# outputs:

id animal
1 1 dog
2 2 cat
3 3 dog
4 4 fish
5 5 cat

关于python - Pandas :找到每个人最常见的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49821754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com