相关疑难解决方法(0)

Groupby in python pandas:Fast Way

我想改善groupby蟒蛇熊猫的时间.我有这个代码:

df["Nbcontrats"] = df.groupby(['Client', 'Month'])['Contrat'].transform(len)
Run Code Online (Sandbox Code Playgroud)

目标是计算客户在一个月内签订的合同数量,并将此信息添加到新列(Nbcontrats)中.

  • Client:客户端代码
  • Month:数据提取月份
  • Contrat: 合同编号

我想改善时间.下面我只使用我的实际数据的一个子集:

%timeit df["Nbcontrats"] = df.groupby(['Client', 'Month'])['Contrat'].transform(len)
1 loops, best of 3: 391 ms per loop

df.shape
Out[309]: (7464, 61)
Run Code Online (Sandbox Code Playgroud)

如何改善执行时间?

python numpy pandas pandas-groupby

9
推荐指数
2
解决办法
7208
查看次数

更快的替代方法来执行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 ×2

pandas ×2

pandas-groupby ×2

python ×2