我正在学习数据科学环境中的面向对象编程。
我想了解在一个类中编写相互关联的方法方面的良好做法是什么。
当我运行我的代码时:
import pandas as pd
pd.options.mode.chained_assignment = None
class MyData:
def __init__(self, file_path):
self.file_path = file_path
def prepper_fun(self):
'''Reads in an excel sheet, gets rid of missing values and sets datatype to numerical'''
df = pd.read_excel(self.file_path)
df = df.dropna()
df = df.apply(pd.to_numeric)
self.df = df
return(df)
def quality_fun(self):
'''Checks if any value in any column is more than 10. If it is, the value is replaced with
a warning 'check the original data value'.'''
for col in self.df.columns:
for row in self.df.index:
if self.df[col][row] > 10:
self.df[col][row] = str('check original data value')
return(self.df)
data = MyData('https://archive.ics.uci.edu/ml/machine-learning-databases/00429/Cryotherapy.xlsx')
print(data.prepper_fun())
print(data.quality_fun())
我得到以下输出(由于空间限制,只显示了部分输出):
sex age Time
0 1 35 12.00
1 1 29 7.00
2 1 50 8.00
3 1 32 11.75
4 1 67 9.25
.. ... ... ...
sex age Time
0 1 check original data value check original data value
1 1 check original data value 7
2 1 check original data value 8
3 1 check original data value check original data value
4 1 check original data value 9.25
.. ... ... ...
我对每种方法生成的输出感到满意。
print(data.quality_fun())但是,如果我不先调用就尝试调用print(data.prepper_fun()),则会出现错误AttributeError: 'MyData' object has no attribute 'df'。
作为面向对象编程的新手,我想知道构造这样的东西是否被认为是好的做法,或者是否有其他方法可以做到这一点。
谢谢你的帮助!
至尊宝的传说
不负相思意
相关分类