首页 > 解决方案 > 为特征工程编写函数时使用 df.copy() 是否多余?

问题描述

我想知道编写这种模式是否有任何好处

def feature_eng(df):
  df1 = df.copy()
  ...
  return df1

与这种模式相反

def feature_eng(df):
  ...
  return df

标签: pythonfeature-engineering

解决方案


假设您有一个原始数据框df_raw,并且您df_feature使用feature_eng. df_raw您的第二种方法将在调用时覆盖,df_feature = feature_eng(df_raw)而第一种方法不会。因此,如果您想保持df_raw原样而不修改它,第一个模式将导致正确的结果。

一个小例子:

def feature_eng1(df):
    df.drop(columns=['INDEX'], inplace=True)
    return df

def feature_eng2(df):
    df1 = df.copy()
    df1.drop(columns=['INDEX'], inplace=True)
    return df1

df_feature = feature_eng1(df_raw)

INDEX此处 df_raw在使用时将不包含包含该列feature_eng2


推荐阅读