Python Pandas / Numpy 索引比 2 个数组之间的 np.where 更快

计算科学 Python
2021-12-19 18:44:03

我有 2 个熊猫数据集,它们有共同的“RF”字段。optionsdata变量为~60K,最多映射到5K的字段histdata使用np.where速度非常慢:

for j in range(0,len(optionsdata)):
    optionsmap[j] = np.where(histdata.ix['RF'].str.match(optionsdata.RF[j]))[0][0]

有没有更快的方法来做到这一点?我需要的只是每个值的行#,optionsdata其中每个值对应于histdata.

我应该注意比较的字段是一个字符串,例如 'NYMEX_01_MAR_2016'

1个回答

我不是 100% 清楚你的数据框是什么样的,但我相信你可以使用mergepandas 的功能来做到这一点。你的代码是

optionsmap = pandas.merge(optionsdata,histdata,on="RF",how="left")