Rumah > pembangunan bahagian belakang > Tutorial Python > Bila hendak Menggunakan Pandas apply vs transform untuk Operasi Data Berkumpulan?

Bila hendak Menggunakan Pandas apply vs transform untuk Operasi Data Berkumpulan?

Susan Sarandon
Lepaskan: 2024-11-11 08:02:02
asal
872 orang telah melayarinya

When to Use Pandas apply vs transform for Grouped Data Operations?

Dalam Panda, kedua-dua aplikasi dan transformasi boleh digunakan untuk melaksanakan operasi pada data terkumpul. Walau bagaimanapun, terdapat beberapa perbezaan utama antara kedua-dua kaedah.

Jenis Input

  • apply pas seluruh DataFrame untuk setiap kumpulan sebagai input kepada fungsi tersuai.
  • transform melepasi setiap lajur DataFrame untuk setiap kumpulan secara individu sebagai input kepada fungsi tersuai.

Jenis Output

  • apply boleh mengembalikan skalar, Siri atau DataFrame.
  • transformasi mesti mengembalikan jujukan (cth., Siri, tatasusunan atau senarai) dengan panjang yang sama seperti kumpulan.

Transformasi

  • apply boleh digunakan untuk melaksanakan transformasi pada DataFrame, seperti mengagregatkan nilai, menapis baris atau mengubah suai data.
  • transformasi digunakan terutamanya untuk melaksanakan operasi mengikut baris dalam kumpulan, seperti menskalakan nilai atau menambah lajur baharu.

Contoh

Pertimbangkan DataFrame berikut:

df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
                   'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
                   'C': randn(8), 'D': randn(8)})
Salin selepas log masuk

Untuk menolak lajur C daripada lajur D dalam setiap kumpulan menggunakan gunakan:

df.groupby('A').apply(lambda x: (x['C'] - x['D']))
Salin selepas log masuk

Untuk menolak lajur C daripada lajur D dalam setiap kumpulan menggunakan penjelmaan:

df.groupby('A').transform(lambda x: (x['C'] - x['D']).mean())
Salin selepas log masuk

Perhatikan bahawa fungsi lambda yang diluluskan untuk mengubah mengembalikan min perbezaan antara C dan D, menghasilkan lajur yang diubah dengan bentuk yang sama seperti DataFrame asal.

Bila menggunakan apply vs transform:

  • Gunakan guna apabila anda perlu mengakses berbilang lajur dalam kumpulan atau melakukan operasi yang menghasilkan bentuk output yang berbeza (cth., mengagregatkan nilai atau menapis baris).
  • Gunakan transformasi apabila anda perlu melakukan operasi mengikut baris dalam kumpulan dan ingin mencipta lajur atau pembolehubah baharu dengan bentuk yang sama seperti data input.

Atas ialah kandungan terperinci Bila hendak Menggunakan Pandas apply vs transform untuk Operasi Data Berkumpulan?. 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