【发布时间】:2020-05-30 18:05:36
【问题描述】:
请参考以下代码:
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 个是
【问题讨论】:
-
conversion() 必须在类定义中定义为conversion(self)。更多关于类方法声明:docs.python.org/3/tutorial/classes.html
-
请发布显示调用堆栈和错误的确切行的回溯。并考虑制作一个没有与问题无关的无关代码的较小示例。方便我们!
-
python 教程是学习该语言基础知识的绝佳资源。这是关于课程的:docs.python.org/3/tutorial/classes.html#class-objects