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