Erste SchritteKostenlos loslegen

Beste Praxis für Standardargumente

Einer deiner Kollegen (der diesen Kurs offensichtlich nicht belegt hat) hat diese Funktion geschrieben, um eine Spalte zu einem Pandas DataFrame hinzuzufügen. Leider haben sie eine veränderbare Variable als Standardargumentwert verwendet! Bitte zeige ihnen einen besseren Weg, damit sie kein unerwartetes Verhalten zeigen.

def add_column(values, df=pandas.DataFrame()):

  """Add a column of `values` to a DataFrame `df`.

  The column will be named "col_<n>" where "n" is

  the numerical index of the column.


  Args:

    values (iterable): The values of the new column

    df (DataFrame, optional): The DataFrame to update.

      If no DataFrame is passed, one is created by default.


  Returns:

    DataFrame

  """

  df['col_{}'.format(len(df.columns))] = values

  return df

Diese Übung ist Teil des Kurses

Funktionen in Python schreiben

Kurs anzeigen

Anleitung zur Übung

  • Ändere den Standardwert von df in einen unveränderlichen Wert, um Best Practices zu folgen.
  • Aktualisiere den Code der Funktion, damit ein neuer DataFrame erstellt wird, wenn der Aufrufer keinen übergeben hat.

Interaktive Übung zum Anfassen

Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.

# Use an immutable variable for the default argument
def better_add_column(values, df=____):
  """Add a column of `values` to a DataFrame `df`.
  The column will be named "col_" where "n" is
  the numerical index of the column.

  Args:
    values (iterable): The values of the new column
    df (DataFrame, optional): The DataFrame to update.
      If no DataFrame is passed, one is created by default.

  Returns:
    DataFrame
  """
  # Update the function to create a default DataFrame
  if ____ is ____:
    df = pandas.DataFrame()
  df['col_{}'.format(len(df.columns))] = values
  return df
Bearbeiten und Ausführen von Code