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

Pandas筛选含Event_Label=0的Event_Action所有条目问题

筛选含0值Event_Action的全量数据解决方案

需求说明

我有3.5万条数据,需要筛选并导出所有存在Event_Label为0的Event_Action的全部条目,规则如下:

  • 若某Event_Action(如100-genuine-data-entry-jobs-without-investment:us)存在0值,则保留该Event_Action的所有记录
  • 若某Event_Action(如1099-sales-jobs:us)无0值,则直接排除该Action的所有记录

我的尝试与问题

我先筛选出含0值的Event_Action存入新表zero_instance.xlsx,再执行以下代码合并数据:

df1 = pd.read_excel(pwd + "/zero_instance.xlsx")
df2 = pd.read_excel(pwd + "/All Last 7 days data rcom.xlsx")
df3 = df1.merge(df2, how='left', left_on='Event_Action', right_on='Event_Action')

但最终只返回了每个Event_Action的第一个实例,无法获取该Action下的所有符合条件的条目。

样本数据

Event_ActionEvent_Label
100-genuine-data-entry-jobs-without-investment:us0
100-genuine-data-entry-jobs-without-investment:us20000
1099-bookkeeping-jobs:us0
1099-sales-jobs:us1721341
......

正确解决方法

无需拆分表再合并,直接在全量数据上操作更高效,步骤如下:

  1. 从全量数据中提取所有包含Event_Label=0的Event_Action(去重)
  2. 用这个Action列表过滤全量数据,保留所有属于这些Action的记录

代码实现

import pandas as pd

# 读取全量数据
df = pd.read_excel(pwd + "/All Last 7 days data rcom.xlsx")

# 获取所有存在0值的Event_Action(去重)
valid_actions = df[df['Event_Label'] == 0]['Event_Action'].unique()

# 过滤出所有符合条件的记录
result_df = df[df['Event_Action'].isin(valid_actions)]

# 导出结果到Excel
result_df.to_excel(pwd + "/filtered_result.xlsx", index=False)

原方法问题分析

之前的合并操作如果zero_instance.xlsx中仅存储了每个Action的单条记录(比如只存了Event_Label=0的那一行),理论上left merge应该能匹配到df2中该Action的所有条目,但可能因为中间表的结构问题(比如存在重复索引、多余列)导致结果异常。上面的方法跳过中间表,直接基于全量数据处理,逻辑更清晰且不易出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 23:36:20