为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

撒科打诨 2023-07-11 16:46:43
我有一个大数据框:import pandas as pd df = pd.read_csv('data.csv)df.head()ID  Year    status223725  1991    No223725  1992    No223725  1993    No223725  1994    No223725  1995    No我有很多唯一的IDs,我想根据列ID和删除重复的行status。如果 anID的值为Yesin status,则仅保留该行,而该特定的所有其他status值为 的 行都将被删除。NoID如果 an在每个观察中ID 都有, 则保留特定于该的任何行。NostatusID例如,在下面的 DataFrame 中,仅应保留状态为 68084329 的行,即Yes最后一行,所有其他行都No将被删除。 ID         Year    status68084329    1991    No68084329    1992    No68084329    1993    No68084329    1994    No68084329    1995    No68084329    1996    No68084329    1997    No68084329    1998    No68084329    1999    No68084329    2000    No68084329    2001    No68084329    2002    No68084329    2003    No68084329    2004    No68084329    2005    No68084329    2006    No68084329    2007    No68084329    2008    No68084329    2010    No68084329    2011    No68084329    2012    Yes如何根据上述条件删除重复行?
查看完整描述

1 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

我认为你可以这样做:


# sort by status so that No comes before Yes

df = df.sort_values('status')


# pick the last row, it will either be Yes or No

df = df.groupby('ID').last()


查看完整回答
反对 回复 2023-07-11
  • 1 回答
  • 0 关注
  • 113 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信