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

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

这是一个自我回答的QNA,目的是让用户了解应用的缺陷和好处。

我见过很多关于Stack溢出的问题的答案,涉及到应用程序的使用。我也看到用户在他们下面评论说:“apply是缓慢的“,应该避免”。

我读过许多关于性能主题的文章,这些文章解释了apply很慢。我还在文档中看到了一个免责声明apply只是传递UDF的一个方便函数(现在似乎找不到)。所以,大家的共识是apply如果可能的话应该避免。然而,这提出了以下问题:

  1. 如果

    apply

    是如此糟糕,那么为什么它在API中呢?
  2. 我应该如何以及何时编写我的代码

    apply

    -免费?
  3. 有没有什么情况

    apply

    好的

    (比其他可能的解决方案更好)?


郎朗坤
浏览 412回答 3
3回答

慕桂英3389331

为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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python