熊猫DataFrame删除重复项以保留第一个'x'事件

时间:2019-02-18 23:25:17

标签: python pandas

我正在寻找的功能完全像pandas.DataFrame.drop_duplicates()一样工作,但它使我不仅可以保留第一次出现的情况,还可以保留最初的“ x”出现的情况(例如10)。有没有类似的东西? 感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

IIUC,一种实现方法是使用groupbyhead来选择前x个出现的位置。如文档中所述,head

  

返回每个组的前n行。

示例代码:

x = 10
df.groupby('col').head(x)

col是要检查重复项的列,x是要为col中的每个值保留的出现次数

例如:

In [81]: df.head()
Out[81]:
   a         b
0  3  0.912355
1  3  2.091888
2  3 -0.422637
3  1 -0.293578
4  2 -0.817454
....

# keep 3 first instances of each value in column a:

x = 3
df.groupby('a').head(x)

Out[82]:
   a         b
0  3  0.912355
1  3  2.091888
2  3 -0.422637
3  1 -0.293578
4  2 -0.817454
5  1  1.476599
6  1  0.898684
8  2 -0.824963
9  2 -0.290499