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

在Python Pandas中如何将除443外的网络端口归类为‘other’分类?

端口分类标记解决方案

首先注意:你当前的代码df2.loc[df2['Src Port'] == 443] = 'HTTPS'会把匹配到的整行所有列都设置为'HTTPS',这显然不是你想要的——你应该只修改Src Port列,所以第一步先修正这部分:

# 仅修改Src Port列中值为443的行
df2.loc[df2['Src Port'] == 443, 'Src Port'] = 'HTTPS'

接下来给其余端口标记为other,有几种简洁的实现方式:

方法1:先统一赋值再替换(适合多端口扩展)

先把所有端口默认设为other,再单独替换目标端口,这种方式逻辑清晰,后续要加其他端口(比如80对应HTTP)也方便扩展:

# 先给所有行的Src Port设为other
df2['Src Port'] = 'other'
# 再将值为443的行替换为HTTPS
df2.loc[df2['Src Port'] == 443, 'Src Port'] = 'HTTPS'

注:如果原Src Port是数值类型,执行第一步后会转为字符串/object类型,后续可以转成分类类型

方法2:一行代码搞定(numpy.where)

用numpy的where函数做条件判断,一行完成标记:

import numpy as np
# 条件满足则设为HTTPS,否则设为other
df2['Src Port'] = np.where(df2['Src Port'] == 443, 'HTTPS', 'other')

方法3:pandas原生where方法

用pandas自带的where方法,保留满足条件的值,其余替换为other,再把数值443转成字符串:

# 保留值为443的行,其余设为other
df2['Src Port'] = df2['Src Port'].where(df2['Src Port'] == 443, 'other')
# 将数值443替换为HTTPS字符串
df2['Src Port'] = df2['Src Port'].replace(443, 'HTTPS')

最后,如果需要把该列转为分类类型(节省内存,适合后续分析),执行:

df2['Src Port'] = df2['Src Port'].astype('category')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 08:35:24