Dataframe 根据两列或多列中的条件删除行

Dataframe 根据两列或多列中的条件删除行,dataframe,iteration,drop,Dataframe,Iteration,Drop,我是编程新手,请原谅我的无知 我有以下数据帧: ID Name 0 AJ-6 Mark 1 AJ-6 Mark 2 AJ-6-FR Judith 3 AJ-6-FR Judith 4 AJ-6-FR Christian .. ... ... 299 TV-552 Marie 300 TV-552

我是编程新手,请原谅我的无知

我有以下数据帧:

          ID      Name    
0       AJ-6      Mark    
1       AJ-6      Mark     
2    AJ-6-FR    Judith    
3    AJ-6-FR    Judith  
4    AJ-6-FR Christian    
..       ...       ...   
299   TV-552     Marie   
300   TV-552      Ruth     
309  ZS-V-21      John     
310  ZS-V-21      John     
311  ZS-V-21      John    
我的意图是删除那些重复ID的行(即第0-1行或第309-311行),并且该行中有相同的名称

我尝试了很多方法,比如使用iterrows和带有移位列的条件,但我担心在迭代时不可能删除多行

我只是显示了两列,其中可以找到条件,但可能还有更多(即,如果列['age']>=20:删除行)

感谢各位先生和夫人的帮助。

您可以试试

df = df.loc[(df['ID']!=df['shiftdown'])&(df['ID']!=df['shiftup'])]
仅当ID值与shiftdown和shiftup不同时,它才检查并保留行

相反,如果您只想基于特定列删除具有相同值的行,则可以使用df.drop_values(by=[col_name]),这个问题并不清楚。

您可以尝试这样做(如果
df
是您的数据帧):


亲爱的爱德华多。非常感谢您的投入。我试图用你的解决方案解决我的问题,但我意识到我的问题比我想象的要复杂一些。我最终决定重新制定它。很抱歉给您带来不便。我希望你能帮助我。我认为,如果你有多个条件要应用,而这些条件彼此确实不同,那么执行更多的“清理”步骤可能比将所有内容压缩在一行代码中更简单。考虑每个条件的优先级(您想先按年龄筛选还是先检查重复项?)。另外,看看下面的LINK,它包含了一些代码示例,您可以为代码复制这些示例。如果不确切知道您的输出应该是什么,那么很难再提供更多帮助
df.drop_duplicates(subset = ['ID', 'Name'], inplace = True)