Python数据帧对大量数据的笛卡尔运算

2024-04-27 03:19:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有2个数据帧,都有大约30k行和8列,我需要从第二个数据帧的每一行的值中减去第一个数据帧中每一行的值(计算每一行之间的欧几里德距离),这可能会导致一个只有每一行之间差异的3d结构。我试过几种方法,但每一种都需要很长时间才能完成。有没有有效的方法?你知道吗


Tags: 数据方法距离差异结构
2条回答

如果我理解正确,则生成的数据集将包含900.000.000行。你知道吗

scipy.spatial.distance.cdist-是计算两个输入集合的每对之间距离的最有效方法之一。你知道吗

如果您需要笛卡尔产品,请参阅@zipa的答案。你知道吗

为了获得价值,笛卡尔积可以按以下方式进行:

import pandas as pd

df1 = pd.DataFrame({'A': [1,2,3]})
df2 = pd.DataFrame({'B': [4,5,6]})

df3 = pd.merge(df1.assign(key=1), df2.assign(key=1), on='key').drop('key', axis=1)
df3
#   A  B
#0  1  4
#1  1  5
#2  1  6
#3  2  4
#4  2  5
#5  2  6
#6  3  4
#7  3  5
#8  3  6

相关问题 更多 >