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
Susan Sarandonasal
2024-11-11 08:02:02867semak imbas

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

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

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

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

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

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!

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