小编ast*_*ist的帖子

更快的替代方法来执行pandas groupby操作

我有一个名称(person_name),日期和颜色(shirt_color)作为列的数据集.

每个人在特定的日子穿着具有特定颜色的衬衫.天数可以是任意的.

例如输入:

name  day  color
----------------
John   1   White
John   2   White
John   3   Blue
John   4   Blue
John   5   White
Tom    2   White
Tom    3   Blue
Tom    4   Blue
Tom    5   Black
Jerry  1   Black
Jerry  2   Black
Jerry  4   Black
Jerry  5   White
Run Code Online (Sandbox Code Playgroud)

我需要找到每个人最常用的颜色.

例如结果:

name    color
-------------
Jerry   Black
John    White
Tom     Blue
Run Code Online (Sandbox Code Playgroud)

我正在执行以下操作来获得结果,这很好但很慢:

most_frquent_list = [[name, group.color.mode()[0]] 
                        for name, group in data.groupby('name')]
most_frquent_df = pd.DataFrame(most_frquent_list, columns=['name', 'color'])
Run Code Online (Sandbox Code Playgroud)

现在假设我有一个包含500万个唯一名称的数据集.执行上述操作的最佳/最快方式是什么?

python numpy pandas pandas-groupby

6
推荐指数
3
解决办法
3139
查看次数

标签 统计

numpy ×1

pandas ×1

pandas-groupby ×1

python ×1