python - 在 python 中使用 bincount numpy 提高 groupby pandas 的性能
问题描述
我有这样的DataFrame:
data = [
[1, 11111, 324, 0],
[1, 11111, 324, 0],
[1, 11111, 324, 0],
[1, 22222, 490, 0],
[1, 33333, 675, 1],
[2, 44444, 888, 0]
]
df_data = pd.DataFrame(data, columns = ['CustID','MatchID','LocationID','IsMajor'])
# These are my results I want to return
df_result = pd.DataFrame()
df_result = (df.groupby(['CustID','IsMajor'])['MatchID']
.agg(lambda x: list(x.value_counts()))
.unstack('IsMajor',fill_value = []))
结果df_result
:
IsMajor 0 1
CustID
1 [3,1] [1]
2 [1,1] []
一切正常,但速度很慢。
我找到了很多解决方案,我认为我应该使用bincount
(NumPy 的一个功能),但它不起作用:
df_result = (df.groupby(['CustID','IsMajor'])['MatchID']
.agg(lambda x: np.bincount(x))
.unstack('IsMajor',fill_value = []))
我可以使用bincount
其他解决方案或其他解决方案来提高性能吗?
解决方案
推荐阅读
- kivy - 导出我的kivy应用后,图片没有保存
- c# - MS Graph SDK:如何添加 URL 段以过滤特定成员类型?
- caching - Janusgraph 缓存
- numpy - 如何从具有以下形状的 SVD 组件重建原始矩阵?
- vue.js - 在 .vue 上创建多个模块
- javascript - 为什么动态特殊字符在我的反应路由器中不起作用?
- azure-sql-database - 从 Azure SQL VM 到 Azure SQL DB 的脱机 DMS 迁移
- spring - 为什么我的自定义 Spring PropertySourceLoader 解析的应用程序配置值没有被使用?
- api - 空手道 - 任何不丑陋的方式来发送带有每个请求正文字段格式错误请求的 API 请求?
- c++ - 在 C++ 中安装和使用 Wacom SDK