为什么放在类中时我的python函数运行不同

时间:2019-04-10 02:54:25

标签: python pandas function class

我正在重新组织和清理我的代码,并移动了一组函数以供课堂使用。基本设置很好,一个功能很好,而其他功能则不行。代码不在类中时按预期运行,所以我怀疑我对.self的处理有所减少。

我已经一遍又一遍地阅读代码。用另一种方式重写东西,看看我是否搞砸了。

请注意,如果pandas中的dataFrames处理不同,我将使用它们。

下面的示例代码。

class

现在,根据from pandas import DataFrame, read_csv class clss(object): def __init__(self, x): self.x1 = x # x is a pandas data frame self.stat = defaultdict(dict) def worker0(self, key, key0): # Change value at given coordinates if key in self.stat and key0 in self.stat[key]: self.stat[key][key0] += 1 else: self.stat[key] = dict(key0=0) def worker1(self, key, key0) if key in self.stat and key0 in self.stat[key]: self.stat[key][key0] += 2 else: self.stat[key] = dict(key0=0) def master(self): for a in self.x1.index: if self.x1.loc[a, 'val'] == 1: self.worker0(a, foo) else: self.worker1(a, foo) self.worker0(a, blah) self.x1 = DataFrame(stat).T print(self.x1) x = read_csv('file.csv') #index = [0, 1, 2] c = clss(x) c.master() 的内容,我应该得到如下输出:

x

相反,我得到:

    foo     blah
0   4       1
1   10      4
2   1       30

正如我所知,错误的方法是所有适当除法的值之和。但是,我不确定是否确实如此,但这似乎是正确的。

为了提供更多背景信息,我有一个 foo blah 0 15 35 1 15 35 2 15 35 ,其中包含事件列表(csv),每个事件中每个rows中都有一些人员。如果事件是特定事件,请为特定事件中的每个人在column中更改相关值。

编辑以改进示例并提供上下文

0 个答案:

没有答案