大佬教程收集整理的这篇文章主要介绍了Python-如何使用Pandas groupby在组上添加顺序计数器列,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
使用cumcount()
,请参阅此处的文档
In [4]: df.groupby(['c1', 'c2']).cumcount()
Out[4]:
0 0
1 1
2 0
3 1
4 0
5 1
6 2
7 0
8 0
9 0
10 1
11 2
dtype: int64
如果要从1开始订购
In [5]: df.groupby(['c1', 'c2']).cumcount()+1
Out[5]:
0 1
1 2
2 1
3 2
4 1
5 2
6 3
7 1
8 1
9 1
10 2
11 3
dtype: int64
我觉得有比这更好的方法:
import pandas as pd
df = pd.DataFrame(
[['A','X',3],['A',5],'Y',7],1],['B',['C',4],6]],columns=['c1','c2','v1'])
def callBACk(X):
x['seq'] = range(1,x.shape[0] + 1)
return x
df = df.groupby(['c1','c2']).apply(callBACk)
print df
为达到这个:
c1 c2 v1 seq
0 A X 3 1
1 A X 5 2
2 A Y 7 1
3 A Y 1 2
4 B X 3 1
5 B X 1 2
6 B X 3 3
7 B Y 1 1
8 C X 7 1
9 C Y 4 1
10 C Y 1 2
11 C Y 6 3
有没有一种方法可以避免回调?
以上是大佬教程为你收集整理的Python-如何使用Pandas groupby在组上添加顺序计数器列全部内容,希望文章能够帮你解决Python-如何使用Pandas groupby在组上添加顺序计数器列所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。