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

如何在获取PID占比Top5时同步关联Process_name字段?

实现PID占比Top5并关联Process_name的最优方法

方法一:先建立PID-Process_name映射再合并统计结果

这种方法效率较高,适合数据集较大的场景,核心是先提取PID与对应Process_name的唯一关联关系,再和占比统计结果合并:

# 提取PID与Process_name的唯一映射(默认一个PID对应唯一Process_name)
pid_process_map = clean_CSV.drop_duplicates(subset='PID')[['PID', 'Process_name']].set_index('PID')

# 统计PID的占比并取Top5
pid_ratio = clean_CSV['PID'].value_counts(normalize=True).nlargest(5).mul(100).round(1).astype(str) + '%'

# 合并得到包含Process_name的最终结果
PIDdf = pid_ratio.to_frame(name='占比').join(pid_process_map)

方法二:直接分组统计一步到位

如果需要更直观的流程,可以直接按PID和Process_name分组,计算每组的占比后取Top5:

# 按PID和Process_name分组,计算每组的记录数
grouped_data = clean_CSV.groupby(['PID', 'Process_name']).size().reset_index(name='记录数')

# 计算每组占总数据的比例
total_records = len(clean_CSV)
grouped_data['占比'] = (grouped_data['记录数'] / total_records).mul(100).round(1).astype(str) + '%'

# 按占比降序排序,取Top5结果
PIDdf = grouped_data.sort_values(by='占比', ascending=False).head(5)[['PID', 'Process_name', '占比']]

异常情况处理

若数据中存在同一PID对应多个Process_name的异常情况,可先对每个PID保留出现次数最多的Process_name:

# 对每个PID,保留出现次数最多的Process_name
pid_process_map = clean_CSV.groupby('PID')['Process_name'].agg(lambda x: x.value_counts().index[0]).to_frame()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 18:24:42