Rumah >pembangunan bahagian belakang >Tutorial Python >Penjelasan sintaks `df[column] = ungkapan` dalam panda
Pandas df['column'] = expression
Penjelasan Terperinci Sintaks: Digunakan untuk membuat, ubah suai atau menetapkan lajur dalam Pandas DataFrame (df). Mari kita pecahkan langkah demi langkah, daripada asas kepada lanjutan.
Apabila lajur tidak wujud dalam DataFrame, memberikan nilai kepada df['column']
mencipta lajur baharu.
Contoh:
<code class="language-python"> import pandas as pd df = pd.DataFrame({'A': [1, 2, 3]}) print(df) # 输出: # A # 0 1 # 1 2 # 2 3 # 创建一个新列 'B',所有值都设置为 0 df['B'] = 0 print(df) # 输出: # A B # 0 1 0 # 1 2 0 # 2 3 0</code>
Jika lajur sudah wujud, tugasan menggantikan kandungannya.
Contoh:
<code class="language-python"> df['B'] = [4, 5, 6] # 替换列 'B' 中的值 print(df) # 输出: # A B # 0 1 4 # 1 2 5 # 2 3 6</code>
Boleh menetapkan nilai pada lajur berdasarkan pengiraan atau transformasi.
Contoh:
<code class="language-python"> df['C'] = df['A'] + df['B'] # 创建列 'C' 为 'A' 和 'B' 的和 print(df) # 输出: # A B C # 0 1 4 5 # 1 2 5 7 # 2 3 6 9</code>
Anda boleh menggunakan pengindeksan boolean Pandas untuk tugasan bersyarat.
Contoh:
<code class="language-python"> df['D'] = df['A'].apply(lambda x: 'Even' if x % 2 == 0 else 'Odd') print(df) # 输出: # A B C D # 0 1 4 5 Odd # 1 2 5 7 Even # 2 3 6 9 Odd</code>
Anda boleh menggunakan berbilang lajur dalam satu ungkapan untuk pengiraan yang lebih kompleks.
Contoh:
<code class="language-python"> df['E'] = (df['A'] + df['B']) * df['C'] print(df) # 输出: # A B C D E # 0 1 4 5 Odd 25 # 1 2 5 7 Even 49 # 2 3 6 9 Odd 81</code>
Tugasan berangka boleh menggunakan operasi penvektoran untuk meningkatkan prestasi.
Contoh:
<code class="language-python"> df['F'] = df['A'] ** 2 + df['B'] ** 2 # 快速向量化计算 print(df) # 输出: # A B C D E F # 0 1 4 5 Odd 25 17 # 1 2 5 7 Even 49 29 # 2 3 6 9 Odd 81 45</code>
np.where
untuk tugasan logik bersyaratAnda boleh menggunakan NumPy untuk tugasan bersyarat.
Contoh:
<code class="language-python"> import numpy as np df['G'] = np.where(df['A'] > 2, 'High', 'Low') print(df) # 输出: # A B C D E F G # 0 1 4 5 Odd 25 17 Low # 1 2 5 7 Even 49 29 Low # 2 3 6 9 Odd 81 45 High</code>
Tetapkan nilai pada lajur berdasarkan fungsi tersuai yang digunakan pada baris atau lajur.
Contoh:
<code class="language-python"> def custom_function(row): return row['A'] * row['B'] df['H'] = df.apply(custom_function, axis=1) print(df) # 输出: # A B C D E F G H # 0 1 4 5 Odd 25 17 Low 4 # 1 2 5 7 Even 49 29 Low 10 # 2 3 6 9 Odd 81 45 High 18</code>
Berbilang operasi boleh dirantai bersama untuk menjadikan kod lebih ringkas.
Contoh:
<code class="language-python"> df['I'] = df['A'].add(df['B']).mul(df['C']) print(df) # 输出: # A B C D E F G H I # 0 1 4 5 Odd 25 17 Low 4 25 # 1 2 5 7 Even 49 29 Low 10 49 # 2 3 6 9 Odd 81 45 High 18 81</code>
Gunakan assign()
untuk membuat atau mengubah suai berbilang lajur dalam satu panggilan.
Contoh:
<code class="language-python"> df = df.assign( J=df['A'] + df['B'], K=lambda x: x['J'] * 2 ) print(df) # 输出: # A B C D E F G H I J K # 0 1 4 5 Odd 25 17 Low 4 25 5 10 # 1 2 5 7 Even 49 29 Low 10 49 7 14 # 2 3 6 9 Odd 81 45 High 18 81 9 18</code>
Buat nama lajur secara dinamik berdasarkan input luaran.
Contoh:
<code class="language-python"> columns_to_add = ['L', 'M'] for col in columns_to_add: df[col] = df['A'] + df['B'] print(df)</code>
Tetapkan nilai pada lajur berdasarkan DataFrame atau kamus luaran.
Contoh:
<code class="language-python"> mapping = {1: 'Low', 2: 'Medium', 3: 'High'} df['N'] = df['A'].map(mapping) print(df) # 输出: # A B C D E F G H I J K N # 0 1 4 5 Odd 25 17 Low 4 25 5 10 Low # 1 2 5 7 Even 49 29 Low 10 49 7 14 Medium # 2 3 6 9 Odd 81 45 High 18 81 9 18 High</code>
apply
, operasi vektor) mempunyai prestasi yang lebih baik daripada gelung Python. df['column'] = expression
Sintaks ialah ciri teras Panda dan mempunyai pelbagai kegunaan. Ia membenarkan:
Ini menjadikan Pandas pustaka analisis dan manipulasi data yang berkuasa.
Atas ialah kandungan terperinci Penjelasan sintaks `df[column] = ungkapan` dalam panda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!