我有一个有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发布于 2019-08-17 18:18:08
您可以通过以下几种方式完成此操作:
1)通过创建布尔掩码来过滤包含单词“worm”的行:
mask = df.str.lower().str.contains('worm')
df.loc[mask, third_column].target = 1
df.loc[~mask, third_column].target = 0你可以使用df.str.contains('(?i)worm')插入df.str.lower().str.contains('worm')
如果您不知道第三列的名称,可以使用:
third_column = df.columns[2]2)按照@ArunPrabhath的建议,沿着DataFrame的第三列应用一个函数:
df.target = df[third_column].apply(lamda x: int('worm' in x.lower()))发布于 2019-08-17 18:27:31
malware_data‘’target‘= malware_data3.apply(lamda行:1 if ('worm’in row) else 0)
https://stackoverflow.com/questions/57535257
复制相似问题