chr列表示染色体数目,pos表示染色体中的特定位置。pos列按升序排序。我需要将每一条染色体分成100、1000、10000等相等的单元。例如,对于单元值100,chr 1将被分成单元[01100],[100200],…[最后位置,最后位置+100)
因此(可能)我需要首先按chr列对u进行分组,然后在pos列上使用pd.cut,其中的仓位由组中的maxpos确定。我如何做到这一点
我只能找到带有固定垃圾箱的示例,例如
pd.groupby(['chr', pd.cut(df_sorted.pos, bins=100)])
但在我的例子中,我需要通过组maxpos值来确定最后的bin间隔
我试过这个:
chr_group = df_sorted.groupby(['chr'])
chr_group.apply(lambda grp: pd.cut(grp.pos, bins=pd.interval_range(
start=0, freq=1000, end=grp.pos.max(), closed='left')))
但这给了我错误
ValueError: Cannot convert non-finite values (NA or inf) to integer
注意:数据集几乎有300万行,不能使用循环
耶,我终于成功了。我需要做的是扩展bin间隔边界。该错误是由bin间隔未覆盖的最后一行引起的
相关问题 更多 >
编程相关推荐