Pandas 熊猫团员+;管道中的n组
我可以使用Pandas 熊猫团员+;管道中的n组,pandas,Pandas,我可以使用ngroup()(模仿R的组指示符号或Stata的组())为一组列创建唯一值,方法是: 我似乎无法在管道解决方案中实现这一点: df = df.groupby(['a','b']).agg(newID= pd.NamedAgg(column=['a','b'], aggfunc='ngroup')) 使用: 您的解决方案应通过解包方式更改,解包方式为**,任何列,因为ngroup是参数的计数方式: df = df.assign(**df.groupby(['a','b'])
ngroup()
(模仿R的组指示符号
或Stata的组()
)为一组列创建唯一值,方法是:
我似乎无法在管道解决方案中实现这一点:
df = df.groupby(['a','b']).agg(newID= pd.NamedAgg(column=['a','b'], aggfunc='ngroup'))
使用:
您的解决方案应通过解包方式更改,解包方式为**
,任何列,因为ngroup
是参数的计数方式
:
df = df.assign(**df.groupby(['a','b']).agg(newID= ('a', 'ngroup')))
print (df)
a b idx newID
0 1 1 0 0
1 1 1 0 0
2 1 2 1 1
3 2 1 2 2
4 2 1 2 2
5 2 2 3 3
df.assign(idx=df.groupby([“a”,“b”]).ngroup())
df = df.assign(newID = df.groupby(['a', 'b']).ngroup())
print (df)
a b idx newID
0 1 1 0 0
1 1 1 0 0
2 1 2 1 1
3 2 1 2 2
4 2 1 2 2
5 2 2 3 3
df = df.assign(**df.groupby(['a','b']).agg(newID= ('a', 'ngroup')))
print (df)
a b idx newID
0 1 1 0 0
1 1 1 0 0
2 1 2 1 1
3 2 1 2 2
4 2 1 2 2
5 2 2 3 3