我试图将不同细菌的DNA螺旋与他们的祖先相匹配,我有大约100万个观察结果。我想确定每个细菌最接近的祖先,即我想将它们与相同或更老的一代(相等或更小的世代数)进行比较,因此我的数据框看起来像这样(为简单起见,我们假设DNA矢量由一个数字组成): / p>
memory error
我尝试创建一个矩阵,并为每个细菌选择该矩阵中的最小值,但由于它将包含许多行和列,因此在创建矩阵之前得到bacteria_id generation DNA_vector most_similar_bacteria distance
213 230 23 310 1 (i.e. 24 -23)
254 230 18 289 2
256 229 39 324 6
289 229 16 228 8
310 228 24 324 19
324 228 45 NA NA
。
让我们假设它不是细菌而是汽车,我将每辆汽车与其自己的一代(例如2010年推出的汽车)和旧汽车进行比较。还让我们将DNA_vector更改为多个功能。如果特征数量之间的差异较小,我会假设它与其他汽车更相似。
所以我想创建两个额外的列。第一个将告诉最小差异(例如,第一个将是1,最相似的汽车将是310型)
预期输出为:
foreach (var value in dic.Values)
{
value.ForEach(Console.WriteLine);
}
你有什么建议吗?
答案 0 :(得分:0)
如果由于数据集较大而遇到内存错误,可以尝试使用dask。它是一个非常类似于pandas的“并行”计算库,允许您使用硬盘驱动器而不是RAM来处理更大的数据集。
https://dask.pydata.org/en/latest/
可能不是您正在寻找的东西,但我很幸运在您描述的大型数据集中使用它。