ホームページ >バックエンド開発 >Python チュートリアル >Groupby().sum() と .transform() を使用して Pandas DataFrame に新しい列を作成する方法

Groupby().sum() と .transform() を使用して Pandas DataFrame に新しい列を作成する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-24 04:43:13240ブラウズ

How to Create a New Column in Pandas DataFrame Using Groupby().sum() and .transform()?

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。