给定一个大的DataFrame df
,一般来说哪个更快?
# combining the masks first
sub_df = df[(df["column1"] < 5) & (df["column2"] > 10)]
# applying the masks sequentially
sub_df = df[df["column1"] < 5]
sub_df = sub_df[sub_df["column2"] > 10]
第一种方法仅从DataFrame中选择一次,这可能更快,然而,第二个示例中的第二种选择只需考虑较小的DataFrame。
1条答案
按热度按时间s5a0g9ez1#
这取决于您的数据集。
首先,让我们生成一个DataFrame,其中包含在第一个条件中应该删除的几乎所有值:
正如所料:
首先生成一个小的中间体会更快。
现在,我们将概率改为
p = 0.9999
,这意味着第一个条件将删除很少的行。我们可以预期两种解决方案的运行速度相似,但是:
现在,创建中间DataFrame的开销不可忽略。