ホームページ >バックエンド開発 >Python チュートリアル >グループ化された Pandas DataFrame にシーケンシャル カウンター列を効率的に追加する方法

グループ化された Pandas DataFrame にシーケンシャル カウンター列を効率的に追加する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-17 05:06:24134ブラウズ

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

コールバックを使用せずに、グループのシーケンシャル カウンタ列を 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 DataFrame にシーケンシャル カウンター列を効率的に追加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。