Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Menambah Lajur Baharu dengan Betul pada Pandas DataFrame Selepas Operasi groupby().sum()?

Bagaimana untuk Menambah Lajur Baharu dengan Betul pada Pandas DataFrame Selepas Operasi groupby().sum()?

Patricia Arquette
Lepaskan: 2024-12-16 20:31:10
asal
807 orang telah melayarinya

How to Correctly Add a New Column to a Pandas DataFrame After a groupby().sum() Operation?

Mencipta Lajur Baharu daripada Output panda groupby().sum()

Apabila melakukan pengiraan pada lajur dalam Pandas DataFrame menggunakan groupby() fungsi, selalunya perlu untuk memasukkan hasil kembali ke dalam DataFrame. Satu cara untuk mencapai matlamat ini ialah dengan membuat lajur baharu berdasarkan pengiraan terkumpul.

Dalam contoh yang disediakan, matlamatnya ialah untuk mencipta lajur baharu, Data4, yang mengandungi jumlah lajur Data3 untuk setiap Tarikh .

Kod yang dibentangkan cuba untuk menetapkan hasil terkumpul terus ke lajur baharu, tetapi ia menghasilkan nilai NaN. Untuk menyelesaikan isu ini, kaedah transform() hendaklah digunakan sebaliknya:

df['Data4'] = df['Data3'].groupby(df['Date']).transform('sum')
Salin selepas log masuk

Kaedah transform() mengembalikan Siri yang sejajar dengan indeks DataFrame, membenarkannya ditambahkan secara langsung sebagai lajur baharu . Parameter 'sum' menentukan pengiraan yang ingin kami lakukan.

Kod yang dikemas kini di bawah menunjukkan penggunaan transform():

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

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

print(df)
Salin selepas log masuk

Output kod yang diubah suai mengira dengan betul jumlah Data3 untuk setiap Tarikh dan menambah hasil pada DataFrame sebagai lajur baharu 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
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menambah Lajur Baharu dengan Betul pada Pandas DataFrame Selepas Operasi groupby().sum()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan