我想使用以下命令将我以前的 SAS 代码改编为 Pythondataframe
框架。
在 SAS 中,我经常使用这种类型的代码(假设列按 group_id 排序,其中 group_id 取值 1 到 10,其中每个 group_id 有多个观察值):
data want;set have;
by group_id;
if first.group_id then c=1; else c=0;
run;
所以这里发生的是我为每个 id 选择第一个观察结果并创建一个新变量c
这需要价值1
and 0
对于其他人。数据集如下所示:
group_id c
1 1
1 0
1 0
2 1
2 0
2 0
3 1
3 0
3 0
我怎样才能在Python中使用dataframe
?假设我从group_id
仅矢量。
如果您使用的是 0.13+,您可以使用cumcount分组方法:
In [11]: df
Out[11]:
group_id
0 1
1 1
2 1
3 2
4 2
5 2
6 3
7 3
8 3
In [12]: df.groupby('group_id').cumcount() == 0
Out[12]:
0 True
1 False
2 False
3 True
4 False
5 False
6 True
7 False
8 False
dtype: bool
您可以强制数据类型为 int 而不是 bool:
In [13]: df['c'] = (df.groupby('group_id').cumcount() == 0).astype(int)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)