Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 请解释一下我在代码中犯的错误?_Python_Pandas_Class_Oop - Fatal编程技术网

Python 请解释一下我在代码中犯的错误?

Python 请解释一下我在代码中犯的错误?,python,pandas,class,oop,Python,Pandas,Class,Oop,请参考以下代码: import pandas as pd import numpy as np import math class ElNinoData(object): # Your implementation here # class variables add = 0 count = 0 average = 0 # class methods def __init__(self , object): self.

请参考以下代码:

import pandas as pd
import numpy as np
import math

class ElNinoData(object):
    # Your implementation here 
    # class variables
    add = 0
    count = 0
    average = 0

    # class methods
    def __init__(self , object):
        self.object = object

    def get_humidity():
        return self.object['humidity']

    def conversion():
        self.object = self.object.astype({'zon_winds':'float64','mer_winds':'float64','humidity':'float64','air_temp':'float64','s_s_temp':'float64'})
        return self.object

    def replace_null():
        if not math.isnan(self.object['humidity']):
            global add
            global count
            global average

            add += pd.to_numeric(self.object['humidity'])
            count += 1
            average = add / count
        else:
            self.object['humidity'] = average
        return self.object['humidity']

def get_obj_it():
    lst = ['bouy','day','latitude','longitude','zon_winds','mer_winds','humidity','air_temp','s_s_temp']
    df = pd.read_csv('C:\\Users\\suel.abbasi\\Downloads\\elnino.gz', sep='\s+', header=None)
    df.columns = lst
    df = df.replace({'.':np.nan})

    for i , j in df.iterrows():        
        yield ElNinoData(j)


def average_humidity():    
    e_n_generator = get_obj_it()

    count = 0;
    hum_sum = 0;

    for e_n_row in e_n_generator:
        e_n_row = e_n_row.conversion()
        count += 1
        hum_sum += e_n_row.get_humidity()

    print("Mean Humidity is '{}' Percent".format(hum_sum/count))
average_humidity()
代码不断抛出错误,我无法理解错误。我试图实现一个类,以编程方式表示数据条目

错误如下:
TypeError:conversion()接受0个位置参数,但在类定义的函数中有1个是

,定义它们时需要将self作为参数传递。因此,不要使用
def conversions():
,而是尝试
def conversion(self)
。对get_湿度()和replace_null()执行相同的操作。如果这对您有帮助,请告诉我。

conversion()必须在类定义中定义为conversion(self)。关于类方法声明的更多信息:请发布显示调用堆栈和错误确切行的回溯。考虑在没有与问题无关的无关代码的情况下做一个较小的例子。让我们轻松一点!python教程是学习该语言基础知识的绝佳资源。这是关于课程的:我理解我犯的错误