Python 如何一次又一次删除包含相同字符串的行

Python 如何一次又一次删除包含相同字符串的行,python,pandas,Python,Pandas,我有一个如下所示的数据帧 Name Mail-Body Oliver I am recently doing AAA, BBB and BBB.... Jack Here is my report. It seemed AAA was.. so AAA is.. Jacob

我有一个如下所示的数据帧

  Name                                    Mail-Body
 Oliver                         I am recently doing AAA, BBB and BBB....
  Jack                          Here is my report. It seemed AAA was.. so AAA is..   
 Jacob                          How are you doing? Next week we launch our AAA porject...
有了这个数据框架,我想进行一些数据分析。 但我发现包含诸如“AAA”和“BBB”等名称的电子邮件很多次都只是一个计划通知之类的东西,所以它几乎毫无意义。 所以我想在邮件正文列中删除所有包含相同字符串(如“AAA”和“BBB”)的行5次以上


是否有任何python方法删除所有行?

示例

print (df)
     Name                                        Mail-Body
0  Oliver     I AAA BBB am recently doing AAA, BBB and BBB
1    Jack   AAA AAA. AAA BBB It seemed AAA was.. so AAA is
2   Jacob      AAA AAA BBB BBB AAA BBB AAA AAA BBB BBB BBB
3     Bal                                          AAA BBB
如果要删除
AAA
更像5次的行,则意味着需要筛选
5
值小于
AAA
的行,并且:

如果需要像
AAA
BBB
这样的过滤器,则每行的值相加多少
AAA
和多少
BBB
并不重要,请使用
AAA | BBB
模式:

df1 = df[df['Mail-Body'].str.count('AAA|BBB').lt(5)]
print (df1)
  Name Mail-Body
3  Bal   AAA BBB
如果要分别测试
AAA
BBB
-按位
|
的链掩码,则意味着筛选
AAA
的5个值或
5个
B

df2 = df[df['Mail-Body'].str.count('AAA').lt(5) | df['Mail-Body'].str.count('BBB').lt(5)]
print (df2)
     Name                                        Mail-Body
0  Oliver     I AAA BBB am recently doing AAA, BBB and BBB
1    Jack   AAA AAA. AAA BBB It seemed AAA was.. so AAA is
3     Bal                                          AAA BBB
如果要通过
对位
进行过滤,解决方案是:

df3 = df[df['Mail-Body'].str.count('AAA').lt(5) & df['Mail-Body'].str.count('BBB').lt(5)]
print (df3)
     Name                                     Mail-Body
0  Oliver  I AAA BBB am recently doing AAA, BBB and BBB
3     Bal                                       AAA BBB

这就是你想要的吗:?谢谢你的评论。但我想删除包含“同一特定短语超过5次”的行,因此它不一定只是“AAA”。我想删除五次以上包含“BBB”的行以及“CCC”之类的行。有没有办法在python中识别相同的字符串?@wannabeAIengineer-不100%确定需要如何过滤,所以答案是用所有解决方案编辑的,请检查。
df3 = df[df['Mail-Body'].str.count('AAA').lt(5) & df['Mail-Body'].str.count('BBB').lt(5)]
print (df3)
     Name                                     Mail-Body
0  Oliver  I AAA BBB am recently doing AAA, BBB and BBB
3     Bal                                       AAA BBB