gpt4 book ai didi

python - 使用groupby()时如何忽略 Pandas 数据框中具有唯一索引的几行?

转载 作者:行者123 更新时间:2023-12-04 09:29:23 24 4
gpt4 key购买 nike

我有一个数据框 df :

ID  Height
A 168
A 170
A 190
A 159
B 172
B 173
C 185
我正在尝试消除 df 中的异常值从每个 ID分别使用:
outliersfree = df[df.groupby("ID")['Height'].transform(lambda x : x < (x.quantile(0.95) + 5*(x.quantile(0.95) - x.quantile(0.05)))).eq(1)]
在这里,我想忽略具有唯一索引的行。即,所有 ID s 中只有一个对应的条目。例如,在 df给定, C索引只有一个条目。因此,我想忽略 C同时消除异常值并按原样呈现新的数据框 outliersfree .
我也想知道如何忽略/跳过 ID s 有两个条目(例如, B 中的 df )。

最佳答案

一种选择是在您的 lambda 函数中创建一个 OR 条件,这样如果您的组中有一个元素,则返回 True。

df.groupby("ID")['Height'].transform(lambda x : (x.count() == 1) | 
(x < (x.quantile(0.95) + 5*
(x.quantile(0.95) - x.quantile(0.05)))))
您可以使用 (x.count() < 3)对于两人或更少的团体。

关于python - 使用groupby()时如何忽略 Pandas 数据框中具有唯一索引的几行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62906549/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com