python-3.x - 仅当重复数小于 X 时才删除重复项
问题描述
只有当重复的数量小于 x(例如 3)时,我才需要在我的 DataFrame 中删除重复的行(如果超过 3 个重复,请保留它们!)
样本:
在哪里count
重复的数量和重复在 coldata
data | count
-------------
a | 1
b | 2
b | 2
c | 1
d | 3
d | 3
d | 3
期望的结果:
data | count
-------------
a | 1
b | 1
c | 1
d | 3
d | 3
d | 3
我怎样才能做到这一点?提前致谢。
解决方案
我相信您需要链条件Series.duplicated
并获得大于或等于N
in 的值boolean indexing
,最后1
为count
列设置:
N = 3
df1 = df[~df.duplicated('data') | df['count'].ge(N)].copy()
df1.loc[df['count'] < N, 'count'] = 1
print (df1)
data count
0 a 1
1 b 1
3 c 1
4 d 3
5 d 3
6 d 3
推荐阅读
- python - 如何从 Django 中的外键模型中获取属性?
- sql - 为什么我的串联不允许我在末尾附加 % ?
- python - 从 android/ios 应用程序到 Windows 软件的实时 JSON 字符串传输
- r - 在 R 中使用带有条件的 sample()
- c# - ALTER TABLE ALTER COLUMN ObjID 失败,因为一个或多个对象访问此列
- .net - 如何在实体框架中将视图检索为 int
- ios - 如果我们在并发队列中导致死锁会发生什么?
- python - Colab 找不到文件
- python - 更改数据集中组的各个列值
- mongodb - 如何查询:数组不包含(不区分大小写)元素