如何优化熊猫套用功能

时间:2020-09-04 22:16:48

标签: python pandas

我正在尝试使用此post

中的getKmers函数
def getKmers(sequence, size=6):
    return [sequence[x:x+size].lower() for x in range(len(sequence) - size + 1)]

human_data['words'] = human_data.apply(lambda x: getKmers(x['sequence']), axis=1)

但是,我的数据集有超过50000个观察值,当我运行此脚本时,笔记本每次都崩溃。我应该如何优化?

我可以想到的一种解决方案是将数据集分成多个部分,然后迭代地运行此代码。我认为这不会起作用,因为apply()实际上只是遍历每一行。我不确定这是什么问题。

1 个答案:

答案 0 :(得分:2)

尝试这样做。当您只想使用序列列时,不必使用apply方法遍历每一列。

human_data['words'] = human_data['sequence'].apply(getKmers)

编辑:虽然速度更快(您不再运行lambda函数),但是您的原始方式并未遍历每一列,我将applymap与applymap混合使用。