Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的秩/行号窗口函数_Python_Python 3.x_Pandas_Jupyter Notebook - Fatal编程技术网

Python中的秩/行号窗口函数

Python中的秩/行号窗口函数,python,python-3.x,pandas,jupyter-notebook,Python,Python 3.x,Pandas,Jupyter Notebook,我是Python的新手,我需要下面这个示例的解决方案,这就是我的df的样子 我只需要返回两条记录,一条记录ID_编号207921021,另一条记录ID_编号222037001。使用下面的代码,我能够根据评分1和评分2的最大值获得ID_编号222037001的一条记录,当操作相同时(“本例中为投资”) 下面是我的结果 是否有办法只获取ID_编号207921021的一条记录(这次在“操作”列中有两个单独的值,即“使用”和“避免”)?我在SQL中使用了窗口函数,即使用QUALIFY RANK()O

我是Python的新手,我需要下面这个示例的解决方案,这就是我的df的样子

我只需要返回两条记录,一条记录ID_编号207921021,另一条记录ID_编号222037001。使用下面的代码,我能够根据评分1和评分2的最大值获得ID_编号222037001的一条记录,当操作相同时(“本例中为投资”)

下面是我的结果

是否有办法只获取ID_编号207921021的一条记录(这次在“操作”列中有两个单独的值,即“使用”和“避免”)?我在SQL中使用了窗口函数,即使用
QUALIFY RANK()OVER(按ID\u编号划分,按分数\u 1操作顺序,分数\u 2 DESC)=1
来完成之前的操作


Python中是否有类似的函数来执行此操作?

这将根据您定义的排序,为每个
ID\u编号选择一行

df.sort_值(按=['Score_2','Score_1'],升序=[False,True]).groupby(['ID_Number'])。头(1)
输出:

Action ID\u Number Score\u 1 Score\u 2
3投资222037001 9 0.4600
0使用207821021 7 0.4525

如果要按
ID\u编号
操作
进行分区,则会得到该
ID\u编号
的两条记录,因为有两个不同的操作。你打算如何决定哪一个?您的SQL还将返回两行。您希望提取ID_编号207921021下的哪条记录?“分数2”值较高的那个?我想要“分数2”值最高的那个@Nev1111@TomNash理想情况下,我希望使用基于最高“分数2”的动作value@Jude92查看更新的结果
Data=Data.groupby(['ID_Number','Action'])['Score_1','Score_2'].max().reset_index()