Python 从dataframe填充对象
目前正在尝试实现遗传算法。我已经构建了一个Python类Gene 我正试图从数据帧df加载对象基因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
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列表传递给染色体
以再次创建它们吗?你能用更多关于欲望输出的信息更新你的问题吗?