【发布时间】:2019-02-19 07:40:26
【问题描述】:
我正在寻找的是一个与 pandas.DataFrame.drop_duplicates() 完全相同的函数,但它允许我不仅保留第一次出现,而且保留第一次出现的“x”次(比如 10 次)。有这样的东西存在吗? 感谢您的帮助!
【问题讨论】:
我正在寻找的是一个与 pandas.DataFrame.drop_duplicates() 完全相同的函数,但它允许我不仅保留第一次出现,而且保留第一次出现的“x”次(比如 10 次)。有这样的东西存在吗? 感谢您的帮助!
【问题讨论】:
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
【讨论】: