为了账号安全,请及时绑定邮箱和手机立即绑定

我什么时候应该使用熊猫在我的代码中应用()?

我什么时候应该使用熊猫在我的代码中应用()?

郎朗坤 2019-07-03 16:39:54
我什么时候应该使用熊猫在我的代码中应用()?这是一个自我回答的QNA,目的是让用户了解应用的缺陷和好处。我见过很多关于Stack溢出的问题的答案,涉及到应用程序的使用。我也看到用户在他们下面评论说:“apply是缓慢的“,应该避免”。我读过许多关于性能主题的文章,这些文章解释了apply很慢。我还在文档中看到了一个免责声明apply只是传递UDF的一个方便函数(现在似乎找不到)。所以,大家的共识是apply如果可能的话应该避免。然而,这提出了以下问题:如果apply是如此糟糕,那么为什么它在API中呢?我应该如何以及何时编写我的代码apply-免费?有没有什么情况apply是好的(比其他可能的解决方案更好)?
查看完整描述

3 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

axis=1(即行向函数)那么您可以使用以下函数来代替apply..我不知道为什么这不是pandas行为。(未使用复合索引进行测试,但它似乎比apply)

def faster_df_apply(df, func):
    cols = list(df.columns)
    data, index = [], []
    for row in df.itertuples(index=True):
        row_dict = {f:v for f,v in zip(cols, row[1:])}
        data.append(func(row_dict))
        index.append(row[0])
    return pd.Series(data, index=index)


查看完整回答
反对 回复 2019-07-03
  • 3 回答
  • 0 关注
  • 411 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信