0

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

我有以下数据框:

          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)并且行中有相同的名称。

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

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

感谢您的帮助先生和女士们。

4

2 回答 2

0

你可以试试这个(如果df是你的 DataFrame):

df.drop_duplicates(subset = ['ID', 'Name'], inplace = True) 
于 2020-03-17T11:53:44.307 回答
0

你可以试试

df = df.loc[(df['ID']!=df['shiftdown'])&(df['ID']!=df['shiftup'])]

仅当 ID 值不同于 shiftdown 和 shiftup 时,它才会检查并保留行。

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

于 2020-03-13T15:20:52.150 回答