ホームページ > バックエンド開発 > Python チュートリアル > Pandas DataFrame 列内の連続する値を効率的にグループ化するにはどうすればよいですか?

Pandas DataFrame 列内の連続する値を効率的にグループ化するにはどうすればよいですか?

DDD
リリース: 2024-12-05 04:54:08
オリジナル
456 人が閲覧しました

How Can I Efficiently Group Consecutive Values in a Pandas DataFrame Column?

Pandas DataFrame での連続する値のグループ化

DataFrame では、グループ化する必要がある連続した値を含む列が発生する場合があります。たとえば、値が含まれる次の列を考えます:

[1, 1, -1, 1, -1, -1]
ログイン後にコピー

これらの値を次のような目的のグループに効率的にグループ化するには:

[1,1] [-1] [1] [-1, -1]
ログイン後にコピー

Pandas ライブラリを使用して次の手順に従います:

カスタム シリーズを使用したソリューショングループ化

カスタム シリーズを利用してこのグループ化を実現できます。アプローチは次のとおりです:

import pandas as pd

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

# Use ne() and cumsum() to create grouping indicator
ind = df['a'].ne(df['a'].shift()).cumsum()

# Group by this indicator
for i, g in df.groupby(ind):
    # Print grouping key
    print(i)
    
    # Print rows in group
    print(g)
    
    # Convert values to list for display
    print(g.a.tolist())
ログイン後にコピー

このコードは、必要なグループ化と値を出力します:

1
   a
0  1
1  1
[1, 1]
2
   a
2 -1
[-1]
3
   a
3  1
[1]
4
   a
4 -1
5 -1
[-1, -1]
ログイン後にコピー

以上がPandas DataFrame 列内の連続する値を効率的にグループ化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート