1. Learn
  2. /
  3. Courses
  4. /
  5. Écrire des fonctions en Python

Connected

Exercise

Bonne pratique pour les arguments par défaut

Une de vos collègues (qui clairement n'a pas suivi ce cours) a écrit cette fonction pour ajouter une colonne à un DataFrame pandas. Malheureusement, elle a utilisé une variable mutable comme valeur par défaut d'un argument ! Montrez-lui une meilleure façon de faire afin d'éviter un comportement inattendu.

def add_column(values, df=pandas.DataFrame()):
  """Ajouter une colonne `values` à un DataFrame `df`.
  La colonne sera nommée « col_<n> » où « n » est
  l'indice numérique de la colonne.

  Args:
    values (iterable): Les valeurs de la nouvelle colonne
    df (DataFrame, optional): Le DataFrame à modifier.
      Si aucun DataFrame n'est fourni, un DataFrame est créé par défaut.

  Returns:
    DataFrame
  """
  df['col_{}'.format(len(df.columns))] = values
  return df

Instructions

100 XP
  • Remplacez la valeur par défaut de df par une valeur immuable afin de respecter les bonnes pratiques.
  • Modifiez le code de la fonction pour créer un nouveau DataFrame si l'appelant n'en a pas fourni un.