Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.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 从dataframe填充对象_Python_Pandas_Oop_Dataframe_Genetic Algorithm - Fatal编程技术网

Python 从dataframe填充对象

Python 从dataframe填充对象,python,pandas,oop,dataframe,genetic-algorithm,Python,Pandas,Oop,Dataframe,Genetic Algorithm,目前正在尝试实现遗传算法。我已经构建了一个Python类Gene 我正试图从数据帧df加载对象基因 class Gene: def __init__(self,id,nb_trax,nb_days): self.id=id self.nb_trax=nb_trax self.nb_days=nb_days 然后创建另一个对象Chrom class Chromosome(object): def __init__(self): self.port = [Gene

目前正在尝试实现遗传算法。我已经构建了一个Python类Gene 我正试图从数据帧df加载对象基因

class Gene:
def __init__(self,id,nb_trax,nb_days):
    self.id=id
    self.nb_trax=nb_trax
    self.nb_days=nb_days
然后创建另一个对象Chrom

class Chromosome(object):

def __init__(self):
    self.port = [Gene() for id in range(20)]
第二类染色体有20个基因对象作为其属性 这是数据帧

   ID               nb_obj              nb_days
 ECGYE                10259            62.965318
NLRTM                 8007            46.550562
我成功地用

tester=df.apply(lambda row: Gene(row['Injection Port'],row['Avg Daily Injection'],random.randint(1,10)), axis=1)
但是我不能使用

f=Chromosome(tester)
我得到这个错误

回溯(最近一次呼叫最后一次):
文件“chrom.py”,第27行,在
f=染色体(测试员)
TypeError:\uuuu init\uuuu()接受1个位置参数,但给出了2个


有什么帮助吗?

这个错误有误导性,因为它说
\uuuu init\uuuu
接受1个位置参数(这是来自类的对象
染色体的
self

其次,在
tester
中对
df
的操作实际上是一个
DataFrame
索引为
df
,有一列
基因

要解决此问题,您必须按照以下方式更改代码:

class Chromosome(object):

def __init__(self, df):
    self.port = [Gene() for id in range(20)]
    self.xxx = list(df)

错误是因为
chromose
init
函数不接受任何参数。此外,你问什么也不清楚。您想将已创建的
基因
s列表传递给
染色体
以再次创建它们吗?你能用更多关于欲望输出的信息更新你的问题吗?