如果列'评论'我试图删除行值。有'坏过程''在里面。
ID Name Comment
0 W12D0 Fine
1 W12D0 Bad Process
2 W12D0 What
3 W12D4 Fine
4 W12D5 Random
5 W12D5 Fine
.. ... ...
注意ID名称' W12D0 '有3条评论:好,坏过程,什么。因为该ID名称具有“错误处理”功能。对应它,我想删除所有出现的W12D0。基本上我正在寻找看起来像这样的数据(带重新索引):
ID Name Comment
1 W12D4 Fine
2 W12D5 Random
3 W12D5 Fine
.. ... ...
答案 0 :(得分:2)
您可以使用.loc
获取“评论”列中包含“错误流程”的所有行的ID Name
。
然后再次使用.loc
,但这次作为掩码来过滤掉不良记录。 tilda(〜)是一个否定,因此它在数据框中找到ID Name不在错误记录列表中的行。
bad = df.loc[df.Comment.str.contains('Bad Process'), 'ID Name']
df_good = df.loc[~df['ID Name'].isin(bad)]
>>> df_good
ID Name Comment
3 W12D4 Fine
4 W12D5 Random
5 W12D5 Fine
答案 1 :(得分:1)
首先识别坏行:
bad_rows = df[df.Comment == 'Bad Process'].Name
然后从数据框中删除它们:
df[-df.Name.isin(bad_rows)]