如何检查包含不同名称的数据集中是否存在单词“worm”:

2024-10-04 05:20:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据集,它有1854行和106列,在它的第三列有类似“Worm.Win32.Zwr.c”(和其他类型的恶意软件名称)的值,我想检查是否有类似'worm'的词在任何行中,然后在同一行的目标列中插入1

for rows in malware_data:
    if ('worm' in malware_data[3]):
        malware_data.loc[rows]['target']=1

    else:
        malware_data.loc[rows]['target']=0

Tags: 数据in名称类型target目标fordata
2条回答

恶意软件\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')

如果您不知道第三列的名称,可以使用:

third_column = df.columns[2]

2)按照@arunprab的建议,沿着数据帧的第三列应用函数:

df.target = df[third_column].apply(lamda x: int('worm' in x.lower()))

相关问题 更多 >