Rumah > pembangunan bahagian belakang > Tutorial Python > Penjelasan sintaks `df[&#column&#] = ungkapan` dalam panda

Penjelasan sintaks `df[&#column&#] = ungkapan` dalam panda

Patricia Arquette
Lepaskan: 2025-01-10 09:13:46
asal
193 orang telah melayarinya

Explanation of the syntax `df[

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.


Asas

1. Cipta lajur baharu

  • Apabila lajur tidak wujud dalam DataFrame, memberikan nilai kepada df['column'] mencipta lajur baharu.

  • Contoh:

      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
    Salin selepas log masuk

2. Ubah suai lajur sedia ada

  • Jika lajur sudah wujud, tugasan menggantikan kandungannya.

  • Contoh:

      df['B'] = [4, 5, 6]  # 替换列 'B' 中的值
      print(df)
      # 输出:
      #    A  B
      # 0  1  4
      # 1  2  5
      # 2  3  6
    Salin selepas log masuk

Tahap pertengahan

3. Tugasan berasaskan ekspresi

  • Boleh menetapkan nilai pada lajur berdasarkan pengiraan atau transformasi.

  • Contoh:

      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
    Salin selepas log masuk

4. Gunakan tugasan bersyarat

  • Anda boleh menggunakan pengindeksan boolean Pandas untuk tugasan bersyarat.

  • Contoh:

      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
    Salin selepas log masuk

5. Gunakan berbilang lajur dalam ungkapan

  • Anda boleh menggunakan berbilang lajur dalam satu ungkapan untuk pengiraan yang lebih kompleks.

  • Contoh:

      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
    Salin selepas log masuk

Bab Lanjutan

6. Operasi pemvektoran

  • Tugasan berangka boleh menggunakan operasi penvektoran untuk meningkatkan prestasi.

  • Contoh:

      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
    Salin selepas log masuk

7. Gunakan np.where untuk tugasan logik bersyarat

  • Anda boleh menggunakan NumPy untuk tugasan bersyarat.

  • Contoh:

      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
    Salin selepas log masuk

8. Gunakan fungsi luaran untuk menetapkan nilai

  • Tetapkan nilai pada lajur berdasarkan fungsi tersuai yang digunakan pada baris atau lajur.

  • Contoh:

      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
    Salin selepas log masuk

9. Operasi rantai

  • Berbilang operasi boleh dirantai bersama untuk menjadikan kod lebih ringkas.

  • Contoh:

      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
    Salin selepas log masuk

10. Berikan berbilang lajur pada satu masa

  • Gunakan assign() untuk membuat atau mengubah suai berbilang lajur dalam satu panggilan.

  • Contoh:

      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
    Salin selepas log masuk

Pakar

11. Tugasan lajur dinamik

  • Buat nama lajur secara dinamik berdasarkan input luaran.

  • Contoh:

      columns_to_add = ['L', 'M']
      for col in columns_to_add:
          df[col] = df['A'] + df['B']
      print(df)
    Salin selepas log masuk

12. Gunakan tugasan data luaran

  • Tetapkan nilai pada lajur berdasarkan DataFrame atau kamus luaran.

  • Contoh:

      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
    Salin selepas log masuk

13. Pengoptimuman prestasi:

  • Apabila memberikan nilai, menggunakan fungsi terbina dalam Pandas (apply, operasi vektor) mempunyai prestasi yang lebih baik daripada gelung Python.

Ringkasan

df['column'] = expression Sintaks ialah ciri teras Panda dan mempunyai pelbagai kegunaan. Ia membenarkan:

  • Tambah, ubah suai dan manipulasi lajur dalam DataFrame.
  • Lakukan pengiraan yang kompleks, termasuk logik berasaskan keadaan dan transformasi berbilang lajur.
  • Operasi rantaian dan jana lajur baharu secara dinamik.

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!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan