BaşlayınÜcretsiz Başlayın

Varsayılan argümanlar için en iyi uygulama

Takım arkadaşlarından biri (belli ki bu dersi almamış) bir pandas DataFrame'ine sütun eklemek için bu fonksiyonu yazmış. Ne yazık ki, varsayılan argüman değeri olarak değiştirilebilir bir değişken kullanmış! Lütfen onlara bunun daha doğru yolunu göster ki beklenmedik davranışlarla karşılaşmasınlar.

def add_column(values, df=pandas.DataFrame()):
  """`values` sütununu `df` adlı DataFrame'e ekle.
  Sütunun adı, "n" sütunun sayısal indeksini gösterecek şekilde
  "col_<n>" olacaktır.

  Args:
    values (iterable): Yeni sütunun değerleri
    df (DataFrame, optional): Güncellenecek DataFrame.
      Herhangi bir DataFrame verilmezse, varsayılan olarak bir tane oluşturulur.

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

Bu egzersiz

Python'da Fonksiyon Yazımı

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • En iyi uygulamalara uymak için df'nin varsayılan değerini değiştirilemez bir değere çevir.
  • Çağıran bir DataFrame vermediyse yeni bir DataFrame oluşturulacak şekilde fonksiyonun kodunu güncelle.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

# 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
Kodu Düzenle ve Çalıştır