将大熊猫系列中的每一项与所有值成对比较吗?

时间:2019-06-23 18:01:47

标签: python pandas dataframe series

我有一个包含字符串的熊猫系列。

import pandas as pd

a = pd.Series(['apple', 'pear', 'cherry', 'applepie'])

我想对系列中的每个项目与所有其他项目执行成对比较操作。在我的特定情况下,我想使用Fuzzywuzzy比率来计算字符串之间的相似性得分,但是我对可能适用于任何类型的成对运算的通用解决方案感到好奇。操作的结果应该是一个正方形数据框,其中应包含序列的尺寸(基本上是该序列本身的笛卡尔积)。

我使用for循环达到了预期的结果:

from fuzzywuzzy import fuzz

comp_df = pd.DataFrame()
for index in a.index:
    comp_df[index] = a.apply(fuzz.ratio, args=(a[index],))

comp_df
    0   1   2   3
0   100 44  18  77
1   44  100 40  33
2   18  40  100 14
3   77  33  14  100

但是据我了解,熊猫应该避免for循环。我的问题是,有没有一种更有效的方法可以使用熊猫范式来实现上述目标(例如,矢量化,理解)?

0 个答案:

没有答案