用Python中的IQR排除异常值?

2024-03-29 08:10:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图排除Python中的异常值。如何计算price\u int\u eu的IQR并排除异常值的results对象(我删除了result对象的其他键,但这样做是有意义的)?你知道吗

json示例:

[{
        "objectID": 12736,

        "results": [
            {
                "price_int": null
            },
            {
                "price_int": 50372
            },
            {
                "price_int": 51930
            },
            {
                "price_int": 58824
            },
            {
                "price_int": 12542
            }
        ]
    }]

我在for循环中尝试了以下函数:

for i in data:
import json
import numpy as np

with open('./input/output_db_gm.json', encoding='utf-8') as data_file:
    data = json.loads(data_file.read())

    for i in data:
        results = i["results"]

        if not results == []:
            price_int = [x["price_int"] for x in results]
            price_int = [x for x in price_int if x is not None]
            if not price_int == []:
                quartile_1, quartile_3 = np.percentile(price_int)
                iqr = quartile_3 - quartile_1
                lower_bound = quartile_1 - (iqr * 1.5)
                upper_bound = quartile_3 + (iqr * 1.5)
                prices_iqr = np.where((price_int > upper_bound) | (price_int < lower_bound))
                print(prices_iqr)

        else:
            pass

但我不知道我要去哪里,这不管用。 我有一个TypeError: percentile() missing 1 required positional argument: 'q'


Tags: 对象inimportjsonfordataifnp