Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menambah Berbilang Lajur dengan Cekap pada Pandas DataFrame?

Bagaimana untuk Menambah Berbilang Lajur dengan Cekap pada Pandas DataFrame?

DDD
DDDasal
2024-10-25 09:54:02482semak imbas

How to Efficiently Add Multiple Columns to a Pandas DataFrame?

Menetapkan Berbilang Lajur kepada Pandas DataFrame Serentak

Dalam konteks bekerja dengan bingkai data dalam Pandas, persoalan timbul tentang cara menambah berbilang dengan cekap lajur dalam satu tugasan.

Percubaan Awal dan Kekurangannya

Ramai pengguna secara semula jadi mencuba sintaks berikut untuk menyelesaikan tugasan ini:

df[['column_new_1', 'column_new_2', 'column_new_3']] = [np.nan, 'dogs', 3]

Walau bagaimanapun , pendekatan ini gagal kerana Pandas memerlukan sebelah kanan untuk menjadi DataFrame apabila membuat lajur baharu dengan sintaks senarai lajur.

Pendekatan Alternatif

Berbilang penyelesaian yang berdaya maju wujud untuk mencapai hasil yang diinginkan. Berikut ialah beberapa pendekatan yang disyorkan:

1. Tugasan Satu Lajur dengan Pembongkaran Iterator

df['column_new_1'], df['column_new_2'], df['column_new_3'] = np.nan, 'dogs', 3

2. Pengembangan DataFrame dengan Pandas.DataFrame()

df[['column_new_1', 'column_new_2', 'column_new_3']] = pd.DataFrame([[np.nan, 'dogs', 3]], index=df.index)

3. Penyatuan dengan Pandas.concat

df = pd.concat(
    [
        df,
        pd.DataFrame(
            [[np.nan, 'dogs', 3]], 
            index=df.index, 
            columns=['column_new_1', 'column_new_2', 'column_new_3']
        )
    ], axis=1
)

4. Sertai dengan Pandas.sertai

df = df.join(pd.DataFrame(
    [[np.nan, 'dogs', 3]], 
    index=df.index, 
    columns=['column_new_1', 'column_new_2', 'column_new_3']
))

5. Peluasan Kamus dengan Pandas.sertai

df = df.join(pd.DataFrame(
    {
        'column_new_1': np.nan,
        'column_new_2': 'dogs',
        'column_new_3': 3
    }, index=df.index
))

6. Argumen Berbilang Lajur dengan .assign()

df = df.assign(column_new_1=np.nan, column_new_2='dogs', column_new_3=3)

7. Penciptaan Lajur dan Tugasan

new_cols = ['column_new_1', 'column_new_2', 'column_new_3']
new_vals = [np.nan, 'dogs', 3]
df = df.reindex(columns=df.columns.tolist() + new_cols)  # add empty cols
df[new_cols] = new_vals  # multi-column assignment works for existing cols

8. Tugasan Berasingan

df['column_new_1'] = np.nan
df['column_new_2'] = 'dogs'
df['column_new_3'] = 3

Pilihan pendekatan bergantung pada keperluan khusus pengguna. Untuk kesederhanaan dan kecekapan, tugasan berasingan selalunya menjadi penyelesaian pilihan. Walau bagaimanapun, jika menambah berbilang lajur dengan jenis atau nilai yang sama diingini, pendekatan lain memberikan fleksibiliti dan ringkas.

Atas ialah kandungan terperinci Bagaimana untuk Menambah Berbilang Lajur dengan Cekap pada Pandas DataFrame?. 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