Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana Anda Boleh Menggunakan `apply` dan `transform` untuk Tolak Lajur dan Pengiraan Min dengan Groupby?

Bagaimana Anda Boleh Menggunakan `apply` dan `transform` untuk Tolak Lajur dan Pengiraan Min dengan Groupby?

DDD
Lepaskan: 2024-11-21 09:00:11
asal
607 orang telah melayarinya

How Can You Use `apply` and `transform` for Column Subtraction and Mean Calculation with Groupby?

Menolak Dua Lajur dan Mengira Min Menggunakan Apply dan Transform

Perbezaan Antara Apply dan Transform

Apabila menggunakan groupby pada DataFrame, gunakan dan ubah mempunyai tersendiri ciri:

Input:

  • apply mengambil keseluruhan DataFrame setiap kumpulan sebagai input.
  • transformasikan proses setiap lajur setiap kumpulan secara individu sebagai a Siri.

Output:

  • apply boleh mengembalikan skalar, Siri, DataFrame (atau jenis data lain).
  • transform memerlukan jujukan dengan panjang yang sama seperti kumpulan.

Fungsi Tersuai untuk Penolakan

Pertimbangkan fungsi tersuai tolak_two untuk menolak lajur 'a' daripada 'b':

def subtract_two(x):
    return x['a'] - x['b']
Salin selepas log masuk

Gunakan lwn. Penggunaan Transformasi

1. Mohon:

Dengan menggunakan apply, kita boleh mengira perbezaan 'a' dan 'b' untuk setiap kumpulan, mengembalikan Siri:

df.groupby('A').apply(subtract_two)
Salin selepas log masuk

2. Transform:

Percubaan untuk menggunakan transform akan mengakibatkan KeyError, kerana transform menjangkakan urutan yang sama panjangnya dengan kumpulan:

df.groupby('A').transform(subtract_two)
# KeyError: 'a'
Salin selepas log masuk

Mengembalikan Skalar daripada Transform

Untuk menggunakan transformasi bagi penolakan, kami boleh mengembalikan skalar daripada fungsi tersuai kami dan menggunakannya pada semua baris dalam kumpulan:

def subtract_two_scalar(x):
    return (x['a'] - x['b']).mean()

df.groupby('A').transform(subtract_two_scalar)
Salin selepas log masuk

Ini mengembalikan Siri dengan perbezaan min bagi setiap kumpulan.

Atas ialah kandungan terperinci Bagaimana Anda Boleh Menggunakan `apply` dan `transform` untuk Tolak Lajur dan Pengiraan Min dengan Groupby?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan