ホームページ >バックエンド開発 >Python チュートリアル >Pandas DataFrame で連続する同じ値をグループ化する方法は?

Pandas DataFrame で連続する同じ値をグループ化する方法は?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-26 22:33:10797ブラウズ

How to Group Consecutive Identical Values in a Pandas DataFrame?

Pandas DataFrame での連続した値のグループ化

pandas では、データのグループ化はデータ分析と操作にとって重要なタスクとなる場合があります。シーケンシャル データを扱う場合、同じ特性を共有する連続した値をグループ化することが必要になることがよくあります。

問題:

連続した値を含む列を持つ DataFrame があるとします。これらの値を、値が同じままになる連続したセグメントにグループ化します。

たとえば、元の列に次のものが含まれているとします。値:

[1, 1, -1, 1, -1, -1]

必要な出力は次のようになります:

[1, 1] [-1 ] [1] [-1、 -1]

解決策:

このグループ化を実現するために、pandas は groupby 関数を使用した柔軟なアプローチを提供します。ただし、列自体に groupby を使用するだけでは十分ではありません。代わりに、セグメントの境界を識別するカスタム シリーズを作成する必要があります。

次のコードは、このソリューションを実装する方法を示しています。

df = pd.DataFrame({'a': [1, 1, -1, 1, -1, -1]})

# Create a custom Series that identifies segment boundaries
boundaries = df['a'].ne(df['a'].shift()).cumsum()

# Group data by the segment boundaries
for i, g in df.groupby(boundaries):
    print(i)
    print(g)
    print(g.a.tolist())

このアプローチでは、連続するセグメントに連続番号を割り当てます。ここで、値は変更されません。これらの数値を使用して、データがそれに応じてグループ化され、各グループが対応する連続値とともに出力されます。

以上がPandas DataFrame で連続する同じ値をグループ化する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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