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

如何将统计域名次数的DataFrame Lambda函数转为常规Python函数?

解决方案

函数设计与实现

你需要的get_domain_count()函数可按以下方式实现,核心是先批量统计域名频次再映射回原数据,比逐行apply效率更高:

import pandas as pd

def get_domain_count(df, domain_col='domain'):
    # 统计每个域名的出现次数
    domain_freq = df[domain_col].value_counts()
    # 将频次映射到原DataFrame的每一行,生成count列
    df['count'] = df[domain_col].map(domain_freq)
    return df

参数说明

  • df: 待处理的原始Pandas DataFrame
  • domain_col(可选): 存储域名的列名,默认值为'domain',适配你的示例场景

使用示例

以你提供的初始数据为例:

# 创建初始DataFrame
raw_data = {'domain': ['target.com', 'macys.com', 'target.com', 'walmart.com', 'walmart.com', 'target.com']}
df = pd.DataFrame(raw_data)

# 调用函数处理
processed_df = get_domain_count(df)

# 查看结果
print(processed_df)

输出结果与你的需求完全匹配:

domaincount
target.com3
macys.com1
target.com3
walmart.com2
walmart.com2
target.com3

优势说明

  • 性能更优:value_counts()+map()是Pandas向量化操作,相比逐行apply,处理大数据量时速度提升显著
  • 灵活性强:如果你的域名列名不是'domain',只需传入domain_col参数即可适配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 12:02:42