Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mencipta Lajur Baharu dalam Pandas DataFrame Menggunakan Groupby().sum() dan .transform()?

Bagaimana untuk Mencipta Lajur Baharu dalam Pandas DataFrame Menggunakan Groupby().sum() dan .transform()?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-24 04:43:13278semak imbas

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

Mencipta Lajur Baharu daripada Output Pandas Groupby().sum()

Apabila bekerja dengan data dalam Python, ia selalunya diperlukan untuk melaksanakan pengiraan dan mencipta lajur baharu dalam DataFrame berdasarkan nilai sedia ada. Dalam contoh ini, kami ingin mencipta lajur baharu (Data4) yang mengandungi jumlah Data3 untuk setiap Tarikh.

Menggunakan .transform()

Untuk mencapai ini, kita boleh menggunakan kaedah .transform() pada lajur Data3 terkumpul. .transform() menggunakan fungsi untuk setiap kumpulan dan mengembalikan Siri dengan indeks sejajar dengan DataFrame asal. Ini membolehkan kami menambah nilai yang dikira sebagai lajur baharu.

df['Data4'] = df['Data3'].groupby(df['Date']).transform('sum')

Dalam contoh DataFrame yang disediakan:

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]
})

Menggunakan .transform(), kami mengira jumlah Data3 untuk setiap Tarikh dan tetapkan pada lajur baharu Data4:

df['Data4'] = df['Data3'].groupby(df['Date']).transform('sum')

DataFrame yang terhasil akan mempunyai Data4 yang diingini lajur:

         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

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Lajur Baharu dalam Pandas DataFrame Menggunakan Groupby().sum() dan .transform()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn