【发布时间】:2020-09-03 16:29:48
【问题描述】:
我有一个大数据框:
import pandas as pd
df = pd.read_csv('data.csv)
df.head()
ID Year status
223725 1991 No
223725 1992 No
223725 1993 No
223725 1994 No
223725 1995 No
我有许多独特的IDs,我想根据ID 和status 列删除重复的行。
-
如果
ID在status中的值为Yes,那么只有那个 行被保留,所有其他行的status值为No针对特定的ID被删除。 -
如果
ID在status的每个观察中都有No然后保留特定于该ID的任何行。
例如,在下面的DataFrame中,只应保留status中68084329的值为Yes的行,即最后一行,删除所有其他带有No的行。
ID Year status
68084329 1991 No
68084329 1992 No
68084329 1993 No
68084329 1994 No
68084329 1995 No
68084329 1996 No
68084329 1997 No
68084329 1998 No
68084329 1999 No
68084329 2000 No
68084329 2001 No
68084329 2002 No
68084329 2003 No
68084329 2004 No
68084329 2005 No
68084329 2006 No
68084329 2007 No
68084329 2008 No
68084329 2010 No
68084329 2011 No
68084329 2012 Yes
如何根据上述情况删除重复行?
【问题讨论】:
-
请习惯于提供示例 df 作为可调用的代码行,您可以创建一个虚拟 df 或使用
df.head(10).to_dict('list')从原始数据中获取它