在 Pandas 中删除重复行但保留一列

47

这看起来很简单,但我在互联网上找不到任何相关信息。

我有一个如下的数据框:

City    State Zip           Date        Description       
Earlham IA    50072-1036    2014-10-10  Postmarket Assurance: Devices
Earlham IA    50072-1036    2014-10-10  Compliance: Devices
Madrid  IA    50156-1748    2014-09-10  Drug Quality Assurance

如何删除匹配了5列中的4列的重复项?不匹配的列是Description

结果将是

City    State Zip           Date        Description       
Earlham IA    50072-1036    2014-10-10  Postmarket Assurance: Devices
Madrid  IA    50156-1748    2014-09-10  Drug Quality Assurance

我在网上发现,drop_duplicates 函数的 subset 参数可以解决问题,但我不确定如何将其应用于多列。

1个回答

96

你已经找到了解决方案。对于多列,子集将是一个列表。

df.drop_duplicates(subset=['City', 'State', 'Zip', 'Date']) 

或者,只需指定要忽略的列:

df.drop_duplicates(subset=df.columns.difference(['Description']))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接