Python 3.x 将SAS增量计数器创建转换为Python 3.x
我是一名新的Python用户,拥有大约20年的SAS经验。我正在尝试将一些进程从SAS转换为Python。到目前为止,我遇到了很多挑战,但我在这里找到了我需要的大多数解决方案(谢谢你,所以!),但我今天遇到的一个更具挑战性,因为我似乎找不到类似的例子(可能只是我搜索词的一个限制)。总之,问题出在这里。我有一些SAS代码,它应用一个计数器,在一个变量中迭代另一个变量。因此,如果我有一个带有变量a和b的表: 所以如果我有一个带有变量a和b的表 我想添加一个在“a”中迭代“b”的计数器 在SAS中,我知道此代码将起作用: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中
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是一种很好的语言,只需几行代码就可以做很多事情,但我也学到了我需要更好地构建搜索引擎来搜索我需要做的事情——我搜索了“创建一个变量相对于另一个变量的累积计数”,但这并没有让我想到这一点。再次感谢你!非常有帮助!