如何将值替换为二进制(0-1)在熊猫网络数据?



我有75列和300k捕获的网络流量CSV文件。我正在使用数据应用ML。我需要根据内部和外部将IP地址转换为1和0。如果是

10.0.2.* > 0
others > 1

是否有简单的方法来做到这一点?我正在使用手动替换方法。

df['SrcAddr'] = df['SrcAddr'].replace(['10.0.2.15','10.0.2.2'],[0,0,0])

iuc,可以使用:

df['SrcAddr'] = df['SrcAddr'].str.startswith('10.0.2.').rsub(1)

或使用正则表达式:

df['SrcAddr'] = df['SrcAddr'].str.fullmatch('10.0.2.').rsub(1)

工作原理:对于每个匹配返回True,使用rsub(1)我们计算1-True -> 0,对于每个不匹配的1-False -> 1

使用任意值的np.where替代方案:

df['SrcAddr'] = np.where(df['SrcAddr'].str.startswith('10.0.2.'), 0, 1)

示例(作为新列):

SrcAddr  SrcAddr2
0  10.0.2.42         0
1    8.8.8.8         1

相关内容

  • 没有找到相关文章

最新更新