Python 面向对象的数据帧转换设计
我正在尝试将面向对象设计应用到我的数据科学项目中。对于数据清理,我们通常从一个表(dataframe)开始,然后在此dataframe上进行转换(例如,基于现有列创建一个新列,将两列添加在一起等) 我最初的想法是(在python中)创建一个类数据,该类数据将有一个底层dataframe作为私有成员,并在类中提供额外的方法来转换数据。当我走到这一步后,我想知道:Python 面向对象的数据帧转换设计,python,pandas,oop,Python,Pandas,Oop,我正在尝试将面向对象设计应用到我的数据科学项目中。对于数据清理,我们通常从一个表(dataframe)开始,然后在此dataframe上进行转换(例如,基于现有列创建一个新列,将两列添加在一起等) 我最初的想法是(在python中)创建一个类数据,该类数据将有一个底层dataframe作为私有成员,并在类中提供额外的方法来转换数据。当我走到这一步后,我想知道: 我做面向对象编程是为了做它吗?与只用纯pandas编写代码而忘记创建自己的类相比,这有什么好处吗 或者干脆做: def clean_da
def clean_dataframe(df):
df = some_operations(df)
return df
df = clean_dataframe(df)
我应该改变这个变量,还是应该创建一个新的变量,甚至是一个新的类来表示转换后的数据
对面向对象设计非常陌生,希望获得更多的视角。编译几个用于数据处理的辅助函数肯定是有意义的,尤其是在需要重复使用的情况下。我不太确定创建一个数据类是否有任何好处,除非有其他对象需要“捆绑”ala C-type结构 这就是说,出于建模目的,当现成的估计量似乎不够时,人们可能会经常求助于编写定制的估计量
关于2,在我看来,您不需要创建单独的数据帧,特别是如果唯一的区别是一个额外的列。不过,作为一个警告,我偶尔会遇到的一个问题是数据帧变得太笨重,这甚至可能会影响IDE的性能。但这也取决于原始数据帧的数据类型和大小。请给出一个您尝试过的示例
def clean_dataframe(df):
df = some_operations(df)
return df
df = clean_dataframe(df)