首页 >后端开发 >Python教程 >如何有效地向 Pandas DataFrame 组添加顺序计数器列?

如何有效地向 Pandas DataFrame 组添加顺序计数器列?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-23 21:29:11461浏览

How to Efficiently Add a Sequential Counter Column to Pandas DataFrame Groups?

在没有回调的情况下将组上的顺序计数器列添加到 Pandas 数据帧

提供的 Python 代码演示了添加顺序计数器的一种方法通过沿特定列(“c1”和“c2”)执行 groupby 操作并应用自定义函数,将列(seq)添加到数据帧。但是,可能有一种更有效的方法来实现此结果,而不需要回调。

一种替代方法是利用 cumcount() 函数,它提供了一种在组内生成连续数字的便捷方法。这是一个改进的解决方案:

df['seq'] = df.groupby(['c1', 'c2']).cumcount() + 1

此行向数据帧添加一个名为“seq”的新列,其中包含由“c1”和“c2”列定义的每个组的序号。 cumcount() 函数沿着指定的组应用,结果移动 1,从 1 而不是 0 开始计数。

这是修改后的数据帧的输出:

   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

通过使用 cumcount(),顺序计数器列被添加到原始数据帧中,消除了对回调函数的需要并简化了代码。

以上是如何有效地向 Pandas DataFrame 组添加顺序计数器列?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn