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

基于指定列筛选DataFrame及T1_diff/T2_diff字段过滤需求问询

Pandas DataFrame 列筛选与条件过滤解决方案

我来帮你一步步搞定这两个操作,用 Pandas 实现起来很简单:


步骤1:保留指定列

首先,我们只保留你需要的 WEEK、DIM1、DIM2、T1_diff、T2_diff 这几列。直接通过列名列表索引即可:

# 保留目标列
filtered_cols_df = df[['WEEK', 'DIM1', 'DIM2', 'T1_diff', 'T2_diff']]

这样就得到了只包含所需列的新 DataFrame。


步骤2:基于 T1_diff 或 T2_diff 过滤行

接下来是条件过滤,你提到要对 T1_diff 或 T2_diff 进行筛选,这里我给几个常见的示例(你可以根据实际需求调整条件):

示例1:筛选 T1_diff 或 T2_diff 不为0的行

# 过滤出任意一个diff字段不为0的行
final_df = filtered_cols_df[(filtered_cols_df['T1_diff'] != 0) | (filtered_cols_df['T2_diff'] != 0)]

示例2:筛选 T1_diff > 50 或 T2_diff > 10 的行

# 根据阈值过滤
final_df = filtered_cols_df[(filtered_cols_df['T1_diff'] > 50) | (filtered_cols_df['T2_diff'] > 10)]

示例3:筛选 T1_diff 为空或 T2_diff 为空的行(针对缺失值场景)

final_df = filtered_cols_df[(filtered_cols_df['T1_diff'].isna()) | (filtered_cols_df['T2_diff'].isna())]

注意:Pandas 里用 | 表示逻辑"或",每个条件都需要用括号括起来,避免运算优先级问题。


合并两步操作(可选)

如果你想一步完成列选择和行过滤,可以用可读性更强的 loc 方法:

final_df = df.loc[(df['T1_diff'] != 0) | (df['T2_diff'] != 0), ['WEEK', 'DIM1', 'DIM2', 'T1_diff', 'T2_diff']]

loc 先指定行筛选条件,再指定要保留的列,逻辑清晰,推荐优先使用这种写法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 07:04:56