Как упростить процесс оценки ячеек относительно среднего значения столбца - PullRequest
1 голос
/ 29 мая 2020

Я хочу просмотреть каждую ячейку моего фрейма данных, чтобы проверить, не превышает ли каждое значение 50% среднего значения столбцов. Я пробовал использовать следующий код, но он очень бесполезен и зависает.

for col, value in data.items():
    mean = data[col].mean()
    for i in value:
        for day in data.index:
            if i < 0.5 * mean:
                data.loc[day, col] = 0

Как я могу упростить или сделать это лучше?

Фрейм данных следующий:

                  Log  1233.de  asdad.w.1  fff.op

Tagname                                          

01/06/2008 00:00    0   343.04      73.75   79.03

02/06/2008 00:00    0   332.31      73.71   79.21

03/06/2008 00:00    0   339.25      75.77   80.11

04/06/2008 00:00    0   353.25      76.47   79.75

05/06/2008 00:00    0   353.44      77.35   82.48

который загружается как:

dat =  pd.read_csv('data.csv', header = 0, index_col = "Tagname")

data = pd.DataFrame(dat)

1 Ответ

1 голос
/ 29 мая 2020

Идея - сравнение среднего значения всех столбцов на mean, умноженное на 0.5 и сравнение на DataFrame.lt с установленными 0 значениями на DataFrame.mask:

data = data.mask(data.lt(data.mean() * 0.5), 0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...