ホームページ >バックエンド開発 >Python チュートリアル >Groupby().sum() と .transform() を使用して Pandas DataFrame に新しい列を作成する方法
Pandas Groupby().sum() の出力から新しい列を作成する
Python でデータを操作する場合、多くの場合、これが必要になります。計算を実行し、既存の値に基づいて DataFrame に新しい列を作成します。この例では、各日付の Data3 の合計を含む新しい列 (Data4) を作成しようとしています。
Using .transform()
これにより、グループ化された Data3 列で .transform() メソッドを利用できます。 .transform() は、各グループに関数を適用し、元の DataFrame に合わせたインデックスを持つ Series を返します。これにより、計算された値を新しい列として追加できます。
df['Data4'] = df['Data3'].groupby(df['Date']).transform('sum')
提供されている DataFrame の例では、
import pandas as pd df = pd.DataFrame({ 'Date': ['2015-05-08', '2015-05-07', '2015-05-06', '2015-05-05', '2015-05-08', '2015-05-07', '2015-05-06', '2015-05-05'], 'Sym': ['aapl', 'aapl', 'aapl', 'aapl', 'aaww', 'aaww', 'aaww', 'aaww'], 'Data2': [11, 8, 10, 15, 110, 60, 100, 40], 'Data3': [5, 8, 6, 1, 50, 100, 60, 120] })
.transform() を使用して、次の Data3 の合計を計算します。各日付を作成し、それを新しい列 Data4 に割り当てます:
df['Data4'] = df['Data3'].groupby(df['Date']).transform('sum')
結果の DataFrame には、目的の Data4 が含まれます。列:
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
以上がGroupby().sum() と .transform() を使用して Pandas DataFrame に新しい列を作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。