2024-10-04 05:20:22 发布
网友
我有一个数据集,它有1854行和106列,在它的第三列有类似“Worm.Win32.Zwr.c”(和其他类型的恶意软件名称)的值,我想检查是否有类似'worm'的词在任何行中,然后在同一行的目标列中插入1
'worm'
for rows in malware_data: if ('worm' in malware_data[3]): malware_data.loc[rows]['target']=1 else: malware_data.loc[rows]['target']=0
恶意软件\u数据['target']=恶意软件\u数据[3]。应用(lamda行:1 if('worm'in row)else 0)
您可以通过以下几种方式实现:
1)通过创建bool掩码来过滤包含单词“worm”的行:
mask = df.str.lower().str.contains('worm') df.loc[mask, third_column].target = 1 df.loc[~mask, third_column].target = 0
插入df.str.lower().str.contains('worm')可以使用df.str.contains('(?i)worm')
df.str.lower().str.contains('worm')
df.str.contains('(?i)worm')
如果您不知道第三列的名称,可以使用:
third_column = df.columns[2]
2)按照@arunprab的建议,沿着数据帧的第三列应用函数:
df.target = df[third_column].apply(lamda x: int('worm' in x.lower()))
恶意软件\u数据['target']=恶意软件\u数据[3]。应用(lamda行:1 if('worm'in row)else 0)
您可以通过以下几种方式实现:
1)通过创建bool掩码来过滤包含单词“worm”的行:
插入
df.str.lower().str.contains('worm')
可以使用df.str.contains('(?i)worm')
如果您不知道第三列的名称,可以使用:
2)按照@arunprab的建议,沿着数据帧的第三列应用函数:
相关问题 更多 >
编程相关推荐