def recombination_ease(self,side):
nodes = self.nodes(side,as_df=True)
if 'E' not in nodes.columns:
aside = self.side if side == self.aside else self.aside
net = self.edges(as_df=True)[[side,aside]]
dis = merge(net,net,how='inner',left_on=aside,right_on=aside)[[side+'_x',side+'_y']].drop_duplicates()
dis = dis[dis[side+'_x']!=dis[side+'_y']]
E = merge(dis.groupby(side+'_x').count().reset_index().rename(columns={side+'_y':'n_c'}).rename(columns={side+'_x':side}),net.groupby(side).count().reset_index().rename(columns={aside:'n_p'}),how='outer').fillna(0)
E['E'] = E['n_c']/E['n_p']
E = E[[side,'E']]
self.set_node_attributes(side,'E',dict(E.values))
return E
else:
return nodes[[side,'E']]
评论列表
文章目录