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

如何根据列值拆分DataFrame?按BDA是否为空拆分raw示例

嘿,这个需求在pandas里处理起来超简单的,核心就是用布尔索引来拆分数据。我给你两种常用的实现方式,你挑顺手的来:

方法一:直接使用布尔索引筛选

这种方法最直观,直接通过列的notna()和isna()方法生成筛选条件:

  • 生成df1(存储BDA列不为空的所有行):
    df1 = raw[raw['BDA'].notna()]
    
  • 生成df2(存储BDA列为空的所有行):
    df2 = raw[raw['BDA'].isna()]
    
方法二:使用query()方法简化语法

如果你偏爱更简洁的代码风格,可以用query()方法来写筛选条件:

  • 生成df1:
    df1 = raw.query('BDA.notna()')
    
  • 生成df2:
    df2 = raw.query('BDA.isna()')
    

额外提示:避免修改时的警告

默认情况下,新生成的DataFrame是原始数据的视图,如果之后你需要修改df1或df2的数据,建议在筛选后加上.copy(),这样能避免SettingWithCopyWarning警告:

df1 = raw[raw['BDA'].notna()].copy()
df2 = raw[raw['BDA'].isna()].copy()

不管用哪种方法,都会完整保留原始raw里的所有行,只是把它们分别分到两个独立的DataFrame中~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:48:05