You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas按年份条件拆分DataFrame(禁用inplace=True)的更优方法

更高效的DataFrame拆分方案

你的现有实现完全可行,但可以通过一次性计算布尔掩码的方式优化,避免重复过滤条件,提升代码效率(尤其针对大型数据集)。

优化思路

先算出判断条件的布尔掩码,再用这个掩码同时拆分两个DataFrame,不用重复计算df["Year"] >= 2000:

import pandas as pd

cars = {'Make': {0: 'BMW', 1: 'Kia', 2: 'BMW', 3: 'BMW', 4: 'BMW', 5: 'Kia'}, 
        'Model': {0: '1 serie', 1: 'K7', 2: '6 serie', 3: '6 serie', 4: 'X3', 5: 'Bongo'}, 
        'Year': {0: 2007, 1: 2012, 2: 1982, 3: 1987, 4: 2006, 5: 2000}}

df = pd.DataFrame.from_dict(cars)

# 一次性计算布尔掩码
mask = df["Year"] >= 2000
df_2000 = df[mask]
df = df[~mask]  # ~ 表示取反,等价于 Year < 2000

优势说明

  • 只计算一次过滤条件,减少重复运算,在数据量较大时性能提升明显;
  • 代码逻辑更清晰,掩码变量可以直观表达过滤规则,便于维护。

内容的提问来源于stack exchange,提问作者AnnAc0nda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 13:15:34