程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Python-如何使用Pandas groupby在组上添加顺序计数器列大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Python-如何使用Pandas groupby在组上添加顺序计数器列?

开发过程中遇到Python-如何使用Pandas groupby在组上添加顺序计数器列的问题如何解决?下面主要结合日常开发的经验,给出你关于Python-如何使用Pandas groupby在组上添加顺序计数器列的解决方法建议,希望对你解决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,请注明来意。