差分計算を使用した複数のフィールドに対する Pandas groupby
プログラミングではデータの操作が重要であり、Pandas はこれらのタスクを実行するための強力なライブラリです効率的に。よくある質問の 1 つは、データを複数のフィールドごとにグループ化し、差異を計算する方法です。これを実現する方法を見てみましょう。
問題:
次の構造を持つ DataFrame を考えます:
date site country score 0 2018-01-01 google us 100 1 2018-01-01 google ch 50 2 2018-01-02 google us 70 3 2018-01-03 google us 60 ...
目標は、 「サイト/国」の組み合わせごとのスコアの 1/3/5 日の差。
解決策:
この問題を解決するには、Pandas の groupby を利用できます。および diff 関数:
df = df.sort_values(by=['site', 'country', 'date'])
並べ替えにより、データが適切なグループ化と差分計算のために整理されます。
df['diff'] = df.groupby(['site', 'country'])['score'].diff().fillna(0)
この行は、groupby を使用して「site」列と「country」列ごとに DataFrame をグループ化します。次に、diff を使用して、各グループ内の連続する各スコアの差を計算します。結果は「diff」という新しい列に保存されます。欠落している値は、fillna(0) を使用して 0 に置き換えられます。
出力:
結果の DataFrame には、元の列と 'diff' 列が含まれます:
date site country score diff 0 2018-01-01 fb es 100 0.0 1 2018-01-02 fb gb 100 0.0 ...
追加メモ:
以上がPandas DataFrame の複数のフィールドのスコアの差を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。