我有一个名称(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万个唯一名称的数据集.执行上述操作的最佳/最快方式是什么?