python - Pandas DataFrame 删除重复项,保留第一个 'x' 出现的位置

标签 python pandas

我正在寻找的是一个与 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/

相关文章:

python - 创建一个新列,该新列是满足两个条件的多个其他列中的日期数之和

python - 使用 Pandas 确定最佳组配置

python - Pandas 通过大数据框的不同聚合值进行分组

python - 在新的终端窗口中打印

python - 包装器方法的意义是什么?

python - 无法在 Windows 中安装 Pylint - python?

python - 如何使用唯一名称透视表并避免空值?

python - Pandas:以一列的子字符串搜索和另一列的逆搜索为条件创建一个新列

javascript - 使用 jinja2 将 unicode 字符串交给 javascript

python - sqlalchemy 出现神秘错误 : TypeError 'User' object is not callable