在没有回调的情况下将组上的顺序计数器列添加到 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中文网其他相关文章!