首页 > 解决方案 > Python 数据操作 - pd.apply

问题描述

我在尝试从现有列创建新列时遇到问题。我发现 .apply 有效,但速度非常慢。不幸的是,我公司里没有人熟悉 Python。有没有更有效的方法来执行以下操作?

数据集非常大 - 35 列,10M+ 行。

def state_grpd(x, y, z):
    if x in ["A3",]:
        if y in ["FL", "MI", "NJ", "TX",]:
            result = y
        else:
            result = "Other"
    else:
        if z in ["FL", "MI", "NJ", "TX",]:
            result = z
        else:
            result = "Other"
    return result

df["STATE_BANDED"] =  df.apply(
    lambda x: state_grpd(x["TYPE"], x["STATE1"], x["STATE2"]), axis=1)

标签: pythonpandasnew-operator

解决方案


您可以创建一个单独的表并加入它。我不确定 join 是否比 apply 方法快。我听说矢量化功能也有帮助。


推荐阅读