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