ホームページ >バックエンド開発 >Python チュートリアル >Pandas DataFrame 列内の連続する値をグループ化する方法は?
Pandas DataFrame の連続する値のグループ化
この質問では、DataFrame 列の連続する値をグループ化する解決策を求めます。列 'a' を持つ次の DataFrame について考えてみましょう:
a 0 1 1 1 2 -1 3 1 4 -1 5 -1
目的は、以下に示すように、これらの値を連続シーケンスを表すサブリストにグループ化することです。
[1, 1] [-1] [1] [-1, -1]
ソリューションカスタム シリーズの使用
これを実現するには、カスタム シリーズを活用して連続する値の区切りを識別します。次のコードは、このアプローチを示しています。
df = pd.DataFrame({'a': [1, 1, -1, 1, -1, -1]}) print(df) # Create a series that identifies consecutive value breaks breaks = df['a'].ne(df['a'].shift()).cumsum() print(breaks) # Group the DataFrame by the breaks series for i, g in df.groupby(breaks): print(i) print(g) 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 サイトの他の関連記事を参照してください。