Pandas DataFrame:根据列中的条件删除重复行

我有一个大数据框:


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

  1. 如果 anID的值为Yesin status,则仅保留该行,而该特定的所有其他status值为 的 行都将被删除。NoID

  2. 如果 an在每个观察中ID 都有, 则保留特定于该的任何行。NostatusID

例如,在下面的 DataFrame 中,仅应保留状态为 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

如何根据上述条件删除重复行?


撒科打诨
浏览 114回答 1
1回答

天涯尽头无女友

我认为你可以这样做:# sort by status so that No comes before Yesdf = df.sort_values('status')# pick the last row, it will either be Yes or Nodf = df.groupby('ID').last()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python