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

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

Linda Hamilton
发布: 2024-12-17 05:06:24
原创
130 人浏览过

How to Efficiently Add a Sequential Counter Column to Grouped Pandas DataFrames?

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

在 pandas 库中,可以使用比用于将顺序计数器列添加到分组数据帧的回调函数。 cumcount() 函数提供了一种替代方法。以下是如何实现它:

import pandas as pd

df = pd.DataFrame(
    columns="   index    c1    c2    v1 ".split(),
    data=[
        [0, "A", "X", 3],
        [1, "A", "X", 5],
        [2, "A", "Y", 7],
        [3, "A", "Y", 1],
        [4, "B", "X", 3],
        [5, "B", "X", 1],
        [6, "B", "X", 3],
        [7, "B", "Y", 1],
        [8, "C", "X", 7],
        [9, "C", "Y", 4],
        [10, "C", "Y", 1],
        [11, "C", "Y", 6],
    ],
).set_index("index", drop=True)

# Add a sequential counter column
df["seq"] = df.groupby(["c1", "c2"]).cumcount() + 1
print(df)
登录后复制

此代码片段按“c1”和“c2”对数据帧进行分组,然后将 cumcount() 函数应用于每个组以计算该组内的行数。结果是一个带有附加“seq”列的数据帧,其中包含每个组的顺序计数:

   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
登录后复制

这种方法消除了对回调函数的需要,并为添加顺序计数器列提供了更简洁、更高效的解决方案分组的 pandas 数据框。

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板