当我尝试根据以下代码添加新列时,它工作正常:
GK_1 = (atr['GK_1'].to_list())
GK_1 = [str(x) for x in GK_1]
GK_1 = [x for x in GK_1 if x != 'nan']
players['GK_1'] = (players[GK_1].sum(axis=1))/(len(GK_1)*20)*10
我试图通过创建一个对象来复制上面的代码,但我不知道如何处理以下错误:
class Calculate():
def __init__(self, sk, sk_1, sk_2, sk_3):
self.sk = sk
self.sk_1 = sk_1
self.sk_2 = sk_2
self.sk_3 = sk_3
def calculate_skill(self):
self.sk_1 = (atr[self.sk_1].values.tolist())
self.sk_1 = [x for x in self.sk_1 if pd.isnull(x) == False]
players[self.sk_1] = (players[self.sk_1].sum(axis=1))/(len(self.sk_1)*20)*100
def main():
GK = Calculate('GK', 'GK_1', 'GK_2', 'GK_3')
GK.calculate_skill()
if __name__ == "__main__":
main()
<块引用>
ValueError: 使用可迭代对象设置时必须具有相等的 len 键和值
我应该在上面的代码中更改什么才能使其工作?
谢谢。