ホームページ >バックエンド開発 >Python チュートリアル >「transform()」を使用してパンダにグループ化された合計を含む新しい列を追加する方法
値の合計に基づいて新しい列を作成しようとしたときpandas の groupby() を使用して日付でグループ化すると、NaN の結果が発生します。目的は、その日付に関連付けられた行数に関係なく、すべての日付の特定の値の合計を表示する列を追加することです。
これを達成するには、変換()関数を採用しています。行ごとに操作する apply() 関数とは異なり、transform() はグループ化されたデータに対して計算を実行し、元のデータフレームと一致する系列を返します。
df['Data4'] = df['Data3'].groupby(df['Date']).transform('sum')
ここで段階的に説明します。 :
次のデータフレームを考えます:
Date Sym Data2 Data3 0 2015-05-08 aapl 11 5 1 2015-05-07 aapl 8 8 2 2015-05-06 aapl 10 6 3 2015-05-05 aapl 15 1 4 2015-05-08 aaww 110 50 5 2015-05-07 aaww 60 100 6 2015-05-06 aaww 100 60 7 2015-05-05 aaww 40 120
transform() 関数を適用すると:
df['Data4'] = df['Data3'].groupby(df['Date']).transform('sum')
結果は次のようになります:
Date Sym Data2 Data3 Data4 0 2015-05-08 aapl 11 5 55 1 2015-05-07 aapl 8 8 108 2 2015-05-06 aapl 10 6 66 3 2015-05-05 aapl 15 1 121 4 2015-05-08 aaww 110 50 55 5 2015-05-07 aaww 60 100 108 6 2015-05-06 aaww 100 60 66 7 2015-05-05 aaww 40 120 121
として出力から明らかなように、「Data4」列には、一意の各データの「Data3」の合計が保持されます。 「日付」の値。
以上が「transform()」を使用してパンダにグループ化された合計を含む新しい列を追加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。