当前位置: 首页 > 面试题库 >

python pandas 中的Groupby:快速方法

阎功
2023-03-14
问题内容

我想改善groupbypython pandas中的时间。我有以下代码:

df["Nbcontrats"] = df.groupby(['Client', 'Month'])['Contrat'].transform(len)

目的是计算客户一个月内有多少份合同,并将此信息添加到新列(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)

如何改善执行时间?


问题答案:

用的DataFrameGroupBy.size方法:

df.set_index(['Client', 'Month'], inplace=True)
df['Nbcontrats'] = df.groupby(level=(0,1)).size()
df.reset_index(inplace=True)

最多的工作是将结果分配回源DataFrame的列中。



 类似资料:
  • 本文向大家介绍MongoDB快速翻页的方法,包括了MongoDB快速翻页的方法的使用技巧和注意事项,需要的朋友参考一下 翻阅数据是MongoDB最常见的操作之一。一个典型的场景是需要在你的用户界面中显示你的结果。如果你是批量处理的数据,同样重要的是要让你的分页策略正确,以便你的数据处理可以规模化。 接下来,让我们通过一个例子来看在MongoDB中翻阅数据的不同方式。在这个例子中,我们有一个CRM数

  • 问题内容: 我之前使用过ZurbFoundation和Skeleton,所以我对它们都很熟悉,但是我以前从未不必将现有网站转换为响应式网站。什么是转换我的网站最快的方法?使用上面的框架,还是为已经提供的代码添加媒体查询?(那还行吗?) 问题答案: 确定要支持的设备,然后添加带有以下内容的样式表:

  • 问题内容: 使用正则表达式,最简单的方法是获取网站HTML并在此标记内找到值(或与此相关的任何属性值): 问题答案: 取决于您需要构建(验证等)Http请求的复杂程度。这是我过去使用过的一种简单方法。 编译时可能会发现很多错别字。 (希望这不是功课)

  • 问题内容: 我有一个Python程序,可与字典配合使用。我必须复制字典数千次。我需要密钥和关联内容的副本。该副本将被编辑,并且不得链接到原始副本(例如,副本中的更改不得影响原始副本。) 键是字符串,值是整数(0/1)。 我目前使用一种简单的方法: 对我的代码进行性能分析表明,复制操作花费了大部分时间。 有没有更快的替代方法?什么是最快的? 问题答案: 查看Python操作的C源代码,您会发现它们做

  • 本文向大家介绍加快Android手机速度的方法,包括了加快Android手机速度的方法的使用技巧和注意事项,需要的朋友参考一下 没有人喜欢运行缓慢的智能手机,但是随着时间的流逝,您可能已经注意到曾经快速运行的Android设备的运行速度大大降低了。有许多技巧和窍门可以加快您的Android设备的运行速度,并使它像新设备一样运行。他们之中有一些是: 清除缓存的数据 Android应用程序会不断缓存少

  • 操作步骤: 菜单栏: Code —> Generate —> toString() 右键菜单: Generate —> toString() 快捷键: Mac: command + N Windows\/Linux: Alt + Insert —> toString()