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

如何用Python筛选含HTTP首次出现的名称变更及对应ID、日期

Python实现Excel记录筛选需求

需求说明

从包含id、name、Date三列的Excel文件中,筛选出同一id下首条记录不含任意大小写形式的HTTP,且取该id下首次出现HTTP的那条记录。例如id:436首条无HTTP,第二条首次出现HTTP,符合筛选条件;id:145首条就有HTTP,不符合。

实现步骤

  1. 安装依赖库
  2. 读取Excel数据并标记含HTTP的记录
  3. 按id分组筛选符合条件的记录
  4. 输出或保存结果

代码实现

首先安装所需依赖:

pip install pandas openpyxl

然后运行以下代码(替换文件路径为你的实际路径):

import pandas as pd

# 读取Excel文件,替换为你的文件路径
df = pd.read_excel("your_input_file.xlsx", engine="openpyxl")

# 标记每条记录是否包含任意大小写的HTTP
df["has_http"] = df["name"].str.contains(r'http', case=False, regex=True)

# 定义分组筛选逻辑
def process_group(group):
    # 检查当前id的第一条记录是否不含HTTP
    if not group.iloc[0]["has_http"]:
        # 提取该id下首次出现HTTP的记录
        first_http_record = group[group["has_http"]].iloc[0]
        return first_http_record
    # 首条就有HTTP的id直接跳过
    return None

# 应用分组筛选并整理结果
filtered_data = df.groupby("id").apply(process_group).dropna().reset_index(drop=True)
# 保留需要的列,移除辅助列
final_result = filtered_data[["id", "name", "Date"]]

# 打印结果
print(final_result)

# 保存结果到新Excel文件
final_result.to_excel("filtered_output.xlsx", index=False, engine="openpyxl")

代码说明

  • str.contains(r'http', case=False):通过不区分大小写的正则匹配,识别所有包含HTTP、http、HttP等形式的记录
  • 分组处理时,先验证id的首条记录是否无HTTP,再提取该id下第一个含HTTP的记录
  • 最后移除辅助列,输出或保存筛选后的结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 13:10:24