Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫将函数应用于多个帧的对应单元格_Python_Pandas - Fatal编程技术网

Python 熊猫将函数应用于多个帧的对应单元格

Python 熊猫将函数应用于多个帧的对应单元格,python,pandas,Python,Pandas,我试图将一个函数应用于两个大小相同的数据帧的对应单元格,以创建一个新帧 在伪代码中,我要执行以下操作: def someFunction(df1, df2): #apply Levenstein.ratio() to the corresponding cells in df1, df2. eg #eg:df1.iloc[0]['colA'] compare to df2.iloc[0]['colA'] etc frameC= someFunction(frameA, frameB)

我试图将一个函数应用于两个大小相同的数据帧的对应单元格,以创建一个新帧

在伪代码中,我要执行以下操作:

def someFunction(df1, df2):
  #apply Levenstein.ratio() to the corresponding cells in df1, df2. eg 
  #eg:df1.iloc[0]['colA'] compare to df2.iloc[0]['colA'] etc

frameC= someFunction(frameA, frameB)

我可以编写嵌套的for循环,并迭代帧的每一行/每一列来完成这项工作,但这将是缓慢而乏味的。在熊猫身上有更好的方法吗?我一直在玩弄df.apply函数,似乎不知道如何有效地比较两个不同数据帧的对应单元格。

是否测试了循环是否真的太慢?如果循环是速度的决定性因素,那么它将取决于所应用函数的计时,并且您想要应用的函数可以被矢量化吗?它没有我想要的那么快-我正在比较数百万条记录中的字符串。基本上,我试着根据姓名、地址等来匹配人们。对于他们的每个字段,我比较这两个字段,看看他们有多相似。我想不出一个矢量化的方法。如果行已经排成一行了,那么首先合并它们是否有意义?代码将更具可读性,看起来您正在创建第三个数据帧。从数据描述来看,我不清楚为什么一开始会有2个数据帧而不是1个数据帧。对于这个版本,行确实排成一行,我们只是在不同的时间帧上比较相同的人。两个dfs上的列具有完全相同的名称,因此我只需重命名列,并以某种方式跟踪要在同一个合并数据集中比较的列。然而,我可以看到墙上写着,下一个问题将是匹配不平衡的数据集,因此我更多地是试图找出比较帧的功能,而不是一个精确的解决方案。即使行没有完全对齐,您可以基于某一列合并这两个数据集,该列应该匹配以比较它们,例如pd.merge