Maison >développement back-end >Tutoriel Python >Explication de la syntaxe `df[&#column&#] = expression` dans les pandas

Explication de la syntaxe `df[&#column&#] = expression` dans les pandas

Patricia Arquette
Patricia Arquetteoriginal
2025-01-10 09:13:46131parcourir

Explanation of the syntax `df[

Pandas df['column'] = expression Explication détaillée de la syntaxe : Utilisé pour créer, modifier ou attribuer des colonnes dans Pandas DataFrame (df). Décomposons-le étape par étape, du basique au avancé.


Bases

1. Créer une nouvelle colonne

  • Lorsqu'une colonne n'existe pas dans le DataFrame, attribuer une valeur à df['column'] crée une nouvelle colonne.

  • Exemple :

    <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>

2. Modifier les colonnes existantes

  • Si la colonne existe déjà, l'affectation remplace son contenu.

  • Exemple :

    <code class="language-python">  df['B'] = [4, 5, 6]  # 替换列 'B' 中的值
      print(df)
      # 输出:
      #    A  B
      # 0  1  4
      # 1  2  5
      # 2  3  6</code>

Niveau intermédiaire

3. Affectation basée sur l'expression

  • Peut attribuer des valeurs aux colonnes en fonction de calculs ou de transformations.

  • Exemple :

    <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>

4. Utiliser l'affectation conditionnelle

  • Vous pouvez utiliser l'indexation booléenne de Pandas pour l'affectation conditionnelle.

  • Exemple :

    <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>

5. Utilisez plusieurs colonnes dans les expressions

  • Vous pouvez utiliser plusieurs colonnes dans une seule expression pour des calculs plus complexes.

  • Exemple :

    <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>

Chapitre avancé

Opération de vectorisation

  • Les affectations numériques peuvent utiliser des opérations de vectorisation pour améliorer les performances.

  • Exemple :

    <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>

7. Utilisez np.where pour l'affectation logique conditionnelle

  • Vous pouvez utiliser NumPy pour une affectation conditionnelle.

  • Exemple :

    <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>

8. Utilisez des fonctions externes pour attribuer des valeurs

  • Attribuez des valeurs aux colonnes en fonction d'une fonction personnalisée appliquée à la ligne ou à la colonne.

  • Exemple :

    <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>

9. Fonctionnement de la chaîne

  • Plusieurs opérations peuvent être enchaînées pour rendre le code plus concis.

  • Exemple :

    <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>

10. Attribuez plusieurs colonnes à la fois

  • Utilisez assign() pour créer ou modifier plusieurs colonnes en un seul appel.

  • Exemple :

    <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>

Experts

11. Affectation dynamique des colonnes

  • Créez dynamiquement des noms de colonnes en fonction d'une entrée externe.

  • Exemple :

    <code class="language-python">  columns_to_add = ['L', 'M']
      for col in columns_to_add:
          df[col] = df['A'] + df['B']
      print(df)</code>

12. Utiliser l'affectation de données externes

  • Attribuez des valeurs aux colonnes en fonction d'un DataFrame ou d'un dictionnaire externe.

  • Exemple :

    <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>

13. Optimisation des performances :

  • Lors de l'attribution de valeurs, l'utilisation des fonctions intégrées de Pandas (apply, opérations vectorisées) offre de meilleures performances que les boucles Python.

Résumé

df['column'] = expression La syntaxe est la fonctionnalité principale de Pandas et a un large éventail d'utilisations. Il permet :

  • Ajoutez, modifiez et manipulez des colonnes dans un DataFrame.
  • Effectuez des calculs complexes, notamment une logique basée sur des conditions et des transformations multicolonnes.
  • Enchaînez les opérations et générez dynamiquement de nouvelles colonnes.

Cela fait de Pandas une puissante bibliothèque de manipulation et d'analyse de données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn