首页 > 解决方案 > 如何让python更快地应用自定义函数

问题描述

我开发了一个客户功能来对我的数据框中的产品类型进行分类。

def RST_FINAL_SECOND_FUNCTION(DF_FRAME_NAME):
    if (DF_FRAME_NAME['Column1'] == 'Yes'):
        return 'YES'
    elif (DF_FRAME_NAME['Column1'] == 'No'):
        return DF_FRAME_NAME['column2']
df['column3'] = df.apply(RST_FINAL_SECOND_FUNCTION, axis =1)

将类似功能应用于具有 200,000 行的数据集会消耗时间,有哪些替代方法可以完成上述操作。我们可以使用 lambda 函数吗

用于的样本数据是:

df = pd.DataFrame({'Column1': ['Yes','No','Yes','No','No','No','Yes'],
                   'Column2': [5,5,5,7,7,10,10]
                  })

标签: pandaspython-3.x

解决方案


您可以使用numpy.where

import numpy as np

df['column3'] = np.where(df['Column1'].eq('Yes'), 'Yes', df['Column2'])
print(df)

输出:

  Column1  Column2 column3
0     Yes        5     Yes
1      No        5       5
2     Yes        5     Yes
3      No        7       7
4      No        7       7
5      No       10      10
6     Yes       10     Yes

推荐阅读