Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menambah Lajur Menggunakan Pandas Transform dalam GroupBy DataFrames?

Bagaimana untuk Menambah Lajur Menggunakan Pandas Transform dalam GroupBy DataFrames?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-19 11:52:011061semak imbas

How to Add a Column Using Pandas Transform in GroupBy DataFrames?

Tambah Lajur pada GroupBy DataFrame Menggunakan Pandas Transform

Apabila bekerja dengan operasi kumpulan dalam panda, selalunya berguna untuk menambah lajur baharu pada bingkai data yang terhasil. Satu kaedah untuk mencapai ini ialah menggunakan fungsi .map(), seperti yang ditunjukkan dalam contoh. Walau bagaimanapun, pendekatan alternatif dan lebih mudah ialah menggunakan fungsi .transform().

.transform() membolehkan kami menggunakan fungsi pada setiap kumpulan dalam rangka data dan mengembalikan Siri dengan hasilnya. Siri yang dikembalikan akan mempunyai indeks yang sejajar dengan bingkai data asal.

Untuk menggambarkan, mari kita mulakan dengan bingkai data yang disediakan:

df = pd.DataFrame({'c': [1, 1, 1, 2, 2, 2, 2], 'type': ['m', 'n', 'o', 'm', 'm', 'n', 'n']})

Matlamat kami adalah untuk mengira nilai jenis bagi setiap c dan tambah lajur dengan saiz c.

g = df.groupby('c')['type'].value_counts().reset_index(name='t')

Kod ini mengira nilai untuk setiap kumpulan dan mencipta lajur baharu bernama t.

Untuk menambah lajur saiz menggunakan .transform( ), kita boleh melakukan perkara berikut:

g['size'] = df.groupby('c')['type'].transform('size')

.transform('size') menggunakan fungsi saiz untuk setiap kumpulan, yang mengembalikan saiz setiap kumpulan. Siri yang terhasil diselaraskan dengan indeks rangka data asal, membolehkan kami menambahkannya sebagai lajur baharu pada g.

Output akan menjadi bingkai data dengan lajur tambahan bernama saiz:

   c type  t  size
0  1    m  1     3
1  1    n  1     3
2  1    o  1     3
3  2    m  2     4
4  2    n  2     4

Menggunakan .transform() menyediakan cara yang lebih ringkas dan mudah untuk menambah lajur kembali ke kerangka data asal daripada pengagregatan kumpulan.

Atas ialah kandungan terperinci Bagaimana untuk Menambah Lajur Menggunakan Pandas Transform dalam GroupBy DataFrames?. 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