如何在Python中通过括号(而不是括号)解析参数

时间:2019-03-27 15:27:14

标签: python python-3.x

我正在处理一些大熊猫数据框,但是花了太多时间逐行迭代数据框。因此,我定义了一些新类来加快速度。问题是,如果以这种方式定义,我只能以df.loc(n,col)之类的方式访问数据帧,而不能以普通的熊猫方式(df.loc[n,col])进行访问。这意味着修改以前的代码需要做很多工作。我试图阅读熊猫的源代码,但毫无头绪。有什么办法可以解决?非常感谢!

class Data:

    def __init__(self,lenth,df=None):
        self.data = df
        if df == None:
            self.data = pd.DataFrame(columns=[])
        self.lenth = lenth
        self.all = None
        self.all_init = False
        self.start = None
        self.count = None

    def clip(self):
        if np.shape(self.data)[0] >= 2*self.lenth:
            m = math.floor((self.data.index.values[-1] - self.data.index.values[0]+1)/self.lenth) - 1
            start = self.data.index.values[0]
            df = self.data.loc[start:start+m*self.lenth-1]
            if self.all_init == True:
                self.all = self.all.append(df)
            else:
                self.all = df
                self.all_init = True
            self.data = self.data.drop(range(start,start+m*self.lenth))
            self.start = self.data.index.values[0]

    def loc(self,n,col):#indexing
        try:
            if col != None:
                return self.data.loc[n,col]
            else:
                return self.data.loc[n]
        except:#find in all
            if col != None:
                return self.all.loc[n,col]
            else:
                return self.all.loc[n]

0 个答案:

没有答案