如何快速地刪除所有不在每一列IQR 內的数
本帖最后由 kkken 于 2021-11-20 17:58 编辑一个dataframe, 有28列。
我只会一个一个列找它的IQR,然後刪除相应的行。
如何快速地刪除所有不在每一列IQR 內的行数。
谢谢。 看得一头雾水 本帖最后由 阿奇_o 于 2021-11-20 00:39 编辑
你说的IQR 应该是统计学的 四分位距(InterQuantile Range) 吧,它的是 第三分位数Q3 - 第一分位数Q1 的 差值。
所以,你要过滤出"在每一列IQR內的行数",也就是 分别过滤 大于Q1,小于Q3的 部分,
具体看如下的例子:
>>> df = pd.DataFrame({'a':, 'b':})
>>> df
ab
010
132
254
376
498
>>> Q1, Q3 = df.quantile(0.25), df.quantile(0.75) # a,b两列的 Q1分别为3, 2Q3分别为7, 6
>>> df = df[ df>=Q1 ]
>>> df = df[ df<Q3 ]
>>> df.dropna()
a b
13.02.0
25.04.0
>>>
ps: 个人对统计学也不懂(只是曾自学过),以上可能有错误。 阿奇_o 发表于 2021-11-20 00:35
你说的IQR 应该是统计学的 四分位距(InterQuantile Range) 吧,它的是 第三分位数Q3 - 第一分位数Q1 的...
谢谢。
另外,我想问您知道dimension reduction (PCA) 吗?
我是python 新手。
页:
[1]