我正在寻找的功能完全像pandas.DataFrame.drop_duplicates()一样工作,但它使我不仅可以保留第一次出现的情况,还可以保留最初的“ x”出现的情况(例如10)。有没有类似的东西? 感谢您的帮助!
答案 0 :(得分:0)
IIUC,一种实现方法是使用groupby
和head
来选择前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