我正在寻找的是一个与 pandas.DataFrame.drop_duplicates() 完全相同的函数,但它允许我不仅保留第一次出现,而且保留第一个“x”出现(比如 10)。有这样的东西存在吗? 感谢您的帮助!
最佳答案
IIUC,一种方法是使用 groupby
和 head
,选择前 x 个出现的位置。如文档中所述,head
:
Returns first n rows of each group.
示例代码:
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
关于python - Pandas DataFrame 删除重复项,保留第一个 'x' 出现的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54756820/