Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >pandas.core.groupby.DataFrameGroupBy.idxmin()非常慢,我怎样才能让我的代码更快呢?

pandas.core.groupby.DataFrameGroupBy.idxmin()非常慢,我怎样才能让我的代码更快呢?
EN

Stack Overflow用户
提问于 2019-05-01 06:47:01
回答 1查看 330关注 0票数 1

我正在尝试执行与SQL group by相同的操作,并取最小值:

代码语言:javascript
代码运行次数:0
复制
select id,min(value) ,other_fields...
from table
group by ('id')

我试过了:

代码语言:javascript
代码运行次数:0
复制
dfg = df.groupby('id', sort=False)
idx = dfg['value'].idxmin()
df = df.loc[idx, list(df.columns.values)]

但是第2行https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.core.groupby.DataFrameGroupBy.idxmin.html ()在df中的~4M列上花费了半个多小时,而group by只用了不到1秒,我错过了什么,它应该花那么长时间吗?怎样才能让这个过程更快呢?在纯SQL中会更快吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-01 06:51:24

DataFrame.sort_valuesDataFrame.drop_duplicates使用alternative

代码语言:javascript
代码运行次数:0
复制
df1 = df.sort_values(by=['value']).drop_duplicates('id', keep='first')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55932560

复制
相关文章
Golang Project: Tic Tac Toe
In this article, I’ll go through my process of writing a simple Tic-Tac-Toe game in Golang. Error handling, closures, iota as well as other golang features are used to create the game.
Miigon
2022/10/27
7820
CodeForces 907B Tic-Tac-Toe
题目链接:http://codeforces.com/problemset/problem/907/B
Ch_Zaqdt
2019/01/10
4840
Python代写:CSC108H Tic-Tac-Toe
Tic-tac-toe is a two-player game that children often play to pass the time. The game is usually played using a 3-by-3 game board. Each player chooses a symbol to play with (usually an X or an O) and the goal is to be the first player to place 3 of their symbols in a straight line on the game board (either across a row on the board, down a column or along one of the two main diagonals).
拓端
2022/10/24
8150
794. Valid Tic-Tac-Toe State
思路: 1. 由规则可知,”X”一定最先开始,所以当前局面存在”O”的个数大于”X”的个数为非法。 2. 其次,由于”X”和”O”轮流,因此,当前局面中”X”的个数要么和”O”相等,要么比”O”多一。 3. “O”在当前局面赢得比赛的情况下,上一轮的”X”一定不能赢得局面。 4. “O”在当前局面赢得比赛的情况下,上一轮的”X”没有赢得局面时,合法局面必须满足”O”的个数等于”X”的个数。 5. “X”在当前局面赢得比赛的情况下,意味着上一轮”O”没有赢得局面,合法局面下,”X”的个数正好比”O”的个数多一。
用户1147447
2019/05/26
8190
Codeforces Beta Round #3 C. Tic-tac-toe
Certainly, everyone is familiar with tic-tac-toe game. The rules are very simple indeed. Two players take turns marking the cells in a 3 × 3grid (one player always draws crosses, the other — noughts). The player who succeeds first in placing three of his marks in a horizontal, vertical or diagonal line wins, and the game is finished. The player who draws crosses goes first. If the grid is filled, but neither Xs, nor 0s form the required line, a draw is announced.
glm233
2020/09/28
5440
TDD案例-三连棋游戏 Tic-tac-toe
两人轮流在印有九格方盘上划“X”或“O”字, 谁先把三个同一记号排成横线、直线、斜线, 即是胜者)。 以下是这个游戏的一个案例:
Antony
2021/09/02
1.1K0
TDD案例-三连棋游戏 Tic-tac-toe
Python代码编写:CSC108H Tic-Tac-Toe
Tic-tac-toe is a two-player game that children often play to pass the time. The game is usually played using a 3-by-3 game board. Each player chooses a symbol to play with (usually an X or an O) and the goal is to be the first player to place 3 of their symbols in a straight line on the game board (either across a row on the board, down a column or along one of the two main diagonals).
拓端
2022/10/25
6880
对称、群论与魔术(八)——魔术《tic tac toe》中的数学奇迹
当时还剩下最后一个问题,那就是,我们的策略一定能够得到平局结果吗?如果我们还想要得到C4范围内的棋局结果,还需要做哪些策略定制呢?
magic2728
2022/09/04
1.2K0
对称、群论与魔术(八)——魔术《tic tac toe》中的数学奇迹
在家隔离,不忘学习-三连棋游戏 Tic-tac-toe
两人轮流在印有九格方盘上划“X”或“O”字, 谁先把三个同一记号排成横线、直线、斜线, 即是胜者)。 以下是这个游戏的一个案例:
Antony
2020/12/01
7700
在家隔离,不忘学习-三连棋游戏 Tic-tac-toe
对称、群论与魔术(七)——魔术《tic tac toe》的奇迹&Tally-Ho牌背秘密公开!
先信守承诺,公布一下Tally-Ho牌背图案的非对称性秘密,我大胆揣测这一定是有意为之。因为如果想做到对称,像素级别的成立,对于这种级别的印刷厂,和这个规模的印刷品来说,应该是必须的。而出现这样的不对称,唯一的可能就是设计图的阶段就埋下了这个彩蛋。我们来看图:
magic2728
2022/09/04
8650
对称、群论与魔术(七)——魔术《tic tac toe》的奇迹&Tally-Ho牌背秘密公开!
Mono 3.2 上跑NUnit测试
NUnit是一款堪与JUnit齐名的开源的回归测试框架,供.net开发人员做单元测试之用,可以从www.nunit.org网站上免费获得,最新版本是2.5。Mono 3.2 源码安装的,在/usr/bin/ 下面有2.4.8 版本: [azureuser@mono /]$ /usr/bin/nunit-console4 NUnit version 2.4.8 Copyright (C) 2002-2007 Charlie Poole. Copyright (C) 2002-2004 J
张善友
2018/01/19
6650
【LeetCode第 165 场周赛】找出井字棋的获胜者
版权声明:本文为博主原创文章,遵循 CC 4.0 BY 版权协议,转载请附上原文出处链接和本声明。
韩旭051
2019/12/03
6240
Python手写强化学习Q-learning算法玩井字棋
Q-learning 是强化学习中的一种常见的算法,近年来由于深度学习革命而取得了很大的成功。本教程不会解释什么是深度 Q-learning,但我们将通过 Q-learning 算法来使得代理学习如何玩 tic-tac-toe 游戏。尽管它很简单,但我们将看到它能产生非常好的效果。
deephub
2020/05/24
1.9K0
LeetCode 348. 判定井字棋胜负(计数)
请在 n × n 的棋盘上,实现一个判定井字棋(Tic-Tac-Toe)胜负的神器,判断每一次玩家落子后,是否有胜出的玩家。
Michael阿明
2021/02/19
1.6K0
DeepMind悄咪咪开源三大新框架,深度强化学习落地希望再现
作为一种新兴的深度学习技术,采用 DRL 面临着简单实现算法之外的诸多挑战,如训练数据集、环境、监测优化工具和精心设计的实验,以简化 DRL 技术的采用。考虑到机制与大多数传统的机器学习方法不同(DRL agent 尝试在给定环境中通过反复试验来完成任务),应用 DRL 更是困难。在这种情况下,环境和实验的稳健性在 DRL agent 开发的知识中起着最基本的作用。
AI科技大本营
2019/09/19
1.6K0
DeepMind悄咪咪开源三大新框架,深度强化学习落地希望再现
机器学习人工学weekly-2018/5/6
1. Facebook这周太热闹,因为开F8大会(视频回放在https://www.f8.com/)
windmaple
2018/07/27
4290
机器学习人工学weekly-2018/5/6
一文搞懂Python循环的技巧
Python的for循环是coder最常用的语句之一,如果只是简单地对容器循环遍历,那便会少了很多美好的体验。像下面这样:
朱卫军 AI Python
2022/04/02
5390
搜索引擎的这些“彩蛋”你知道吗?
我们平常看到的搜索结果都是普普通通,并没有什么特别。但实际上有很多关键字会搜索出意想不到的结果,我们一起来看看有哪些有趣的搜索结果吧
编程珠玑
2019/08/12
1.3K0
搜索引擎的这些“彩蛋”你知道吗?
BSidesSF 2019 CTF writeup
在网上刷的题目,难度还好,一些题目很有借鉴意义,收录了一些web方面的writeup,用来学习。有更好的解题思路欢迎留言。
用户5878089
2019/07/25
1.7K0
BSidesSF 2019 CTF writeup
LeetCode 1275. 找出井字棋的获胜者(位运算)
给你一个数组 moves,其中每个元素是大小为 2 的另一个数组(元素分别对应网格的行和列),它按照 A 和 B 的行动顺序(先 A 后 B)记录了两人各自的棋子位置。
Michael阿明
2020/07/13
1.3K0
LeetCode 1275. 找出井字棋的获胜者(位运算)

相似问题

Tic Tac Toe Checker

131

Tic Tac Toe java

22

Tic Tac Toe / Java

11

Tic Tac Toe项目

14

javascript tic tac toe

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档