我必须在python中为数据帧中的每一行迭代一些if-else条件
我必须为我必须在python中为数据帧中的每一行迭代一些if-else条件,python,python-3.x,Python,Python 3.x,我必须为python中的dataframe中的每一行迭代一些if-else条件 如果第1行的第一个条件满足,它将通过为该行添加一列并退出来回答“是”或“否” 但是如果对于行2,在满足其他条件的情况下,不应覆盖第一行的“是”或“否” 我希望它被保留,或者我们可以说在第二次迭代中,它应该只检查row2的所有if-else条件,然后检查row3等等 准确地说,只检查所有条件下的一行,如果条件满足,它将通过为该行添加一列并退出来给出输出 我是python新手,我写的代码不起作用 我已经写了下面的代码。请
python
中的dataframe
中的每一行迭代一些if-else
条件
如果第1行的第一个条件满足
,它将通过为该行添加一列并退出来回答“是”或“否”
但是如果对于行2
,在满足其他条件的情况下,不应覆盖第一行的“是”或“否”
我希望它被保留,或者我们可以说在第二次迭代中,它应该只检查row2
的所有if-else条件,然后检查row3
等等
准确地说,只检查所有条件下的一行,如果条件满足,它将通过为该行添加一列并退出来给出输出
我是python新手,我写的代码不起作用
我已经写了下面的代码。请帮帮我
for index, row in data.iterrows():
if row['Resolution Summary'].str.contains("\\bHardware failure\\b", case = False) :
df['flag'] = np.where(data['Resolution Summary'].str.contains("\\bHardware failure\\b", case = False), 'yes','')
elif row['Resolution Summary'].str.contains("\\brouter\\b", case = False):
df['flag'] = np.where(data['Resolution Summary'].str.contains("\\brouter\\b", case = False), 'yes','')
您不需要显式地迭代行。事实上,您不需要多次计算相同的布尔值 如果您希望在给定条件的情况下对特定任务进行优先级排序,您可以明确地这样做。这里有一种方法可以使用
numpy.where
;我们用~
表示“否定”
当然,在这种非常简单的情况下,您可以只使用一个条件:
df['flat'] = np.where(mask1 | mask2, 'yes', '')
根据问题标题,缺少所需的输出和输入,我不清楚你在问什么。另外,请阅读关于“如何提问”的文档。标点符号和格式真的很重要。为什么有人会浪费这么多的时间来搞清楚你想问什么,而你却不努力进行清楚的沟通,或者不尊重志愿者的时间。我们还可以考虑很多其他问题。我了解你对社区的新认识。欢迎请
编辑您的问题,以增加您获得及时、良好答案的机会。
df['flat'] = np.where(mask1 | mask2, 'yes', '')