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 サイトの他の関連記事を参照してください。