我可以使用以下命令从列中删除超过95%的数据:

df[df.value < df.value.quantile(.95)]

如何删除按另一列分组的95%以上的数据?

因此,如果我有一个如下所示的数据帧,我想删除第1行,因为它在类型A中大于95%.

Row  type  value 
1    A     100000
2    A     0.1
3    A     0.3
4    B     10
5    B     11

编辑:我想删除所有类型的95%以上的数据-删除A型、B型等的95%以上的数据

推荐答案

您是否try 过:

df[df['value'].lt(df.groupby('type')['value'].transform(lambda s: s.quantile(.95)))]

或者,缩写形式:

df[df['value'].lt(df.groupby('type')['value'].transform('quantile', .95))]

输出:

   Row type  value
1    2    A    0.1
2    3    A    0.3
3    4    B   10.0

Python相关问答推荐

如何从维基百科的摘要部分/链接列表中抓取链接?

在Python中是否可以输入使用任意大小参数列表的第一个元素的函数

Pandas read_jsonfuture 警告:解析字符串时,to_datetime与单位的行为已被反对

Flask主机持续 bootstrap 本地IP| Python

具有多个组的条形图的不同y标度

如何在Python中使用ijson解析SON期间检索文件位置?

Python在tuple上操作不会通过整个单词匹配

根据条件将新值添加到下面的行或下面新创建的行中

Pandas 在最近的日期合并,考虑到破产

有症状地 destruct 了Python中的regex?

Pandas 都是(),但有一个门槛

2D空间中的反旋算法

如何在类和classy-fastapi -fastapi- followup中使用FastAPI创建路由

两个pandas的平均值按元素的结果串接元素.为什么?

PyQt5,如何使每个对象的 colored颜色 不同?'

SQLAlchemy Like ALL ORM analog

在极性中创建条件累积和

如何根据一列的值有条件地 Select 前N组?

Maya Python脚本将纹理应用于所有对象,而不是选定对象

下三角形掩码与seaborn clustermap bug