我尝试使用来自基于单元的中间数据帧(矩阵_df)的数据将输入数据帧(inp_df)转换为输出数据帧(out_df),如下所示。在
有几个基于单元格编号的文件,其距离值显示在矩阵_df中。在
程序按单元格迭代,并从适当的文件中获取数据,这样每次矩阵都会有当前单元格的所有行的数据,我们在inp_df中迭代这些行。在
inp_df
A B cell
100 200 1
115 270 1
145 255 2
115 266 1
matrix_df (cell_1.csv)
B 100 115 199 avg_distance
200 7.5 80.7 67.8 52
270 6.8 53 92 50
266 58 84 31 57
matrix_df (cell_2.csv)
B 145 121 166 avg_distance
255 74.9 77.53 8 53.47
out_df dataframe
A B cell distance avg_distance
100 200 1 7.5 52
115 270 1 53 50
145 255 2 74.9 53.47
115 266 1 84 57
我目前对每个基于单元格的数据的思考过程是
但我正在寻找一种泛音的方法来实现这一点,因为当输入中有数百万行时,我的方法会减慢速度。我特别在迭代中寻找核心逻辑来获取匹配项,因为在每个单元格中matrix_df中的列数会有所不同
如果有帮助的话,矩阵文件是来自sklearn.metrics.pairwise.pairwise_distances的基于距离的输出。在
注意:在inp_df中,B列的值是唯一的,A列的值可能是唯一的,也可能不是唯一的
另外,matrix_dfs的第一列是空的,因为它是一个无头的矩阵输出文件,为了便于理解,我用下面的代码对其进行了重命名。在
^{pr2}$
第1步:用}合并
pd.concat
连接输入,并使用df.merge
与{第2步:通过使用
^{pr2}$A
的值索引到正确的列中,创建带有df.apply
的distance
列相关问题 更多 >
编程相关推荐