【发布时间】:2021-08-05 18:08:54
【问题描述】:
我有一个包含 100 多列的数据框:
例如,如果列名以'action.malware' 开头并且列值为True,我想在iterrows() 期间分配事件类型列'Malware'。
我想做这样的事情:
for index, value in df3.iterrows():
if value.startswith('action.malware'): #line2
df3.loc[i,value]== True: #line3
df3.loc[i,'Incident Type'] = 'Malware'
并在第 2 行获得 AttributeError: 'Series' object has no attribute 'startswith'
和
File "<ipython-input-151-895039092064>", line 3
df3.loc[i,value]== True:
^
SyntaxError: invalid syntax
在第 3 行。
我不确定如何在第 2 行和第 3 行中以正确的方式 loc 列,因为 iterrows() 中的 value 返回一组列+列值而不是单个列名。有更好的方法吗?
【问题讨论】:
-
您应该将示例数据添加为文本,因为我们无法从图像中复制内容。您可以打印
df.head().to_dict(),并将输出添加到问题中。考虑到您的问题,您可以使用DataFrame.filter根据名称或模式过滤掉所需的列。