Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menambah Lajur Kaunter Berjujukan pada Bingkai Data Panda Berkumpulan dengan Cekap?

Bagaimana untuk Menambah Lajur Kaunter Berjujukan pada Bingkai Data Panda Berkumpulan dengan Cekap?

Linda Hamilton
Linda Hamiltonasal
2024-12-17 05:06:24131semak imbas

How to Efficiently Add a Sequential Counter Column to Grouped Pandas DataFrames?

Tambah Lajur Kaunter Berjujukan pada Kumpulan pada Bingkai Data Pandas Tanpa Panggilan Balik

Dalam perpustakaan panda, seseorang boleh menggunakan kaedah yang lebih cekap daripada fungsi panggil balik untuk menambah lajur pembilang berjujukan pada bingkai data terkumpul. Fungsi cumcount() menyediakan pendekatan alternatif. Begini cara untuk melaksanakannya:

import pandas as pd

df = pd.DataFrame(
    columns="   index    c1    c2    v1 ".split(),
    data=[
        [0, "A", "X", 3],
        [1, "A", "X", 5],
        [2, "A", "Y", 7],
        [3, "A", "Y", 1],
        [4, "B", "X", 3],
        [5, "B", "X", 1],
        [6, "B", "X", 3],
        [7, "B", "Y", 1],
        [8, "C", "X", 7],
        [9, "C", "Y", 4],
        [10, "C", "Y", 1],
        [11, "C", "Y", 6],
    ],
).set_index("index", drop=True)

# Add a sequential counter column
df["seq"] = df.groupby(["c1", "c2"]).cumcount() + 1
print(df)

Coretan kod ini mengumpulkan rangka data mengikut 'c1' dan 'c2', kemudian menggunakan fungsi cumcount() pada setiap kumpulan untuk mengira baris dalam kumpulan itu. Hasilnya ialah kerangka data dengan lajur 'seq' tambahan yang mengandungi kiraan berurutan untuk setiap kumpulan:

   c1 c2  v1  seq
0   A  X   3    1
1   A  X   5    2
2   A  Y   7    1
3   A  Y   1    2
4   B  X   3    1
5   B  X   1    2
6   B  X   3    3
7   B  Y   1    1
8   C  X   7    1
9   C  Y   4    1
10  C  Y   1    2
11  C  Y   6    3

Pendekatan ini menghapuskan keperluan untuk fungsi panggil balik dan menyediakan penyelesaian yang lebih ringkas dan cekap untuk menambah lajur pembilang berjujukan kepada bingkai data panda yang dikumpulkan.

Atas ialah kandungan terperinci Bagaimana untuk Menambah Lajur Kaunter Berjujukan pada Bingkai Data Panda Berkumpulan dengan Cekap?. 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