class Dataframe: #Recommended to instatiate your dataframe with your csv name.
"""
otg_merge = Dataframe("/Users/zachary/Desktop/otg_merge.csv") #instaiate as a pandas dataframe
"""
def __init__(self, filepath, filename = None):
pd = __import__('pandas') #import pandas when the class is instatiated
self.filepath = filepath
self.filename = filename
def df(self): #it makes the DataFrame
df = pd.read_csv(self.filepath, encoding = "cp949", index_col= 0) #index col is not included
return df
def shape(self): #it returns the Dimension of DataFrame
shape = list(df.shape)
return shape
def head(self): #it reutrns the Head of Dataframe
primer = pd.DataFrame.head(df)
del primer["Unnamed: 0"]
return primer
def cust_types(self): #it returns the list of cust_type included in .csv
cust_type = []
for i in range(0, shape[0]):
if df.at[i, "cust_type"] not in cust_type: #if it's new..
cust_type.append(df.at[i, "cust_type"]) #append it as a new list element
return cust_type
我正在做包装的pandas功能包装,不一定需要知道熊猫。
如果看到代码,则在第三个def处,shape将形状返回为[11000,134]的列表,作为xdim和ydim。
现在我想在最后的def cust_types中再次使用该形状,但是,它返回的形状未定义。
如何在同一个类中的defs之间共享变量“share”?
答案 0 :(得分:1)
首先是“自我”。在尝试一些python oops教程后你会知道的所有属性。你可能会错过的另一个问题是
def df(self):
df = pd.read_csv(self.filepath,encoding =“cp949”,index_col = 0)
返回df
这里,如果变量名不是实例属性,则方法名和变量名采用相同的名称,因为它不是。但如果你在前面加上“自我”。并将其作为实例属性,您的实例属性将是self.df,并且在第一个函数调用self.df()之后它不能是函数。