python - 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)
解决方案
您可以创建一个单独的表并加入它。我不确定 join 是否比 apply 方法快。我听说矢量化功能也有帮助。
推荐阅读
- windows - 使用包含双引号的密码提取存档
- curl - 如何使用 facebook API 来限制直播视频的观众?
- azure - 无法登录 Azure 门户
- php - 我试图在我的数据库中一次插入多行但我得到一个错误
- django - 配置 Celery + AWS SQS 以撤销任务
- python - 如何用 nix 构建 pyobjc 7.3?
- javascript - 居中文本输入字段
- r - R:如何为依赖项添加版权声明?
- powershell - PowerShell Pester Mock Rest API 调用
- linux - 在 Lazarus/free pascal 中包含 cthreads 库时出现运行时错误