Python 3.x 将SAS增量计数器创建转换为Python 3.x

Python 3.x 将SAS增量计数器创建转换为Python 3.x,python-3.x,sas,Python 3.x,Sas,我是一名新的Python用户,拥有大约20年的SAS经验。我正在尝试将一些进程从SAS转换为Python。到目前为止,我遇到了很多挑战,但我在这里找到了我需要的大多数解决方案(谢谢你,所以!),但我今天遇到的一个更具挑战性,因为我似乎找不到类似的例子(可能只是我搜索词的一个限制)。总之,问题出在这里。我有一些SAS代码,它应用一个计数器,在一个变量中迭代另一个变量。因此,如果我有一个带有变量a和b的表: 所以如果我有一个带有变量a和b的表 我想添加一个在“a”中迭代“b”的计数器 在SAS中

我是一名新的Python用户,拥有大约20年的SAS经验。我正在尝试将一些进程从SAS转换为Python。到目前为止,我遇到了很多挑战,但我在这里找到了我需要的大多数解决方案(谢谢你,所以!),但我今天遇到的一个更具挑战性,因为我似乎找不到类似的例子(可能只是我搜索词的一个限制)。总之,问题出在这里。我有一些SAS代码,它应用一个计数器,在一个变量中迭代另一个变量。因此,如果我有一个带有变量a和b的表: 所以如果我有一个带有变量a和b的表

我想添加一个在“a”中迭代“b”的计数器

在SAS中,我知道此代码将起作用:

proc sort data=f1; 
by a b; 
run;

data f1;
set f1;
by a b;
if first.b then codeord=0;
codeord+1;
run;

有人能给我一个在Python3.X中实现这一点的方法吗?我已经看到了一些我认为可能会用到的东西(例如,“shift”函数),但到目前为止,我还没能让任何东西起作用。谢谢大家!

熊猫有cumcount功能来解决这个问题

import pandas as pd
df['codeord']=df.groupby(['a','b']).b.cumcount()+1

当你说你有一张桌子时,你是什么意思?表是数据帧、numpy数组、列表列表等吗?谢谢!这工作做得很好!我想这将是一个我完全不知道的单线解决方案。我发现Python是一种很好的语言,只需几行代码就可以做很多事情,但我也学到了我需要更好地构建搜索引擎来搜索我需要做的事情——我搜索了“创建一个变量相对于另一个变量的累积计数”,但这并没有让我想到这一点。再次感谢你!非常有帮助!