我正在重新组织和清理我的代码,并将一组函数移动到一个类中。基本设置很好,因为其中一个函数工作正常,而其他函数则没有。代码在不在类中时按预期运行,因此我怀疑在处理.self
时出现了错误。你知道吗
我已经一遍又一遍地通读了密码。用不同的方式重写,看看我是否把事情搞砸了。你知道吗
注意,如果pandas
数据帧在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
),每个事件中都有一些人。如果一个事件是一个特定的事件,那么在特定事件中为每个人更改dict
中的相关值。你知道吗
编辑以改进示例并提供上下文
目前没有回答
相关问题 更多 >
编程相关推荐