基于变量在类级别的数据框中添加新列

时间:2021-07-01 07:53:43

标签: python python-3.x pandas dataframe

当我尝试根据以下代码添加新列时,它工作正常:

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 键和值

我应该在上面的代码中更改什么才能使其工作?

谢谢。

0 个答案:

没有答案
相关问题