Создайте новый столбец, сравнив значения столбца с его медианой. - PullRequest
0 голосов
/ 13 июля 2020

Вот мой dataFrame

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.rand(5, 5))
med_nbr = df[2].median()
print(med_nbr)
print(df)

Вот результат

0.34525859612986665
          0         1         2         3         4
0  0.289589  0.116376  0.337936  0.491921  0.410265
1  0.750574  0.287310  0.345259  0.075267  0.880722
2  0.756635  0.549868  0.490098  0.653393  0.687278
3  0.430389  0.829553  0.923288  0.279416  0.399782
4  0.850239  0.720959  0.082318  0.858743  0.391333

Вот что я хочу сделать - взять med_nbr и сравнить его с каждым из значений столбца 2 и добавить новый столбец 5, который будет иметь либо 1, либо 0 в зависимости от того, больше или меньше значения в столбце 2 медианы. Ожидаемый результат будет

          0         1         2         3         4         5
0  0.289589  0.116376  0.337936  0.491921  0.410265         0
1  0.750574  0.287310  0.345259  0.075267  0.880722         1
2  0.756635  0.549868  0.490098  0.653393  0.687278         1
3  0.430389  0.829553  0.923288  0.279416  0.399782         1
4  0.850239  0.720959  0.082318  0.858743  0.391333         0

Вот что я делаю и получаю сообщение об ошибке

 df['New'] = df.apply(lambda x: 1 if x[2] >= med_nbr else 0)

Может кто-нибудь объяснить, почему это не работает, и дать правильный код

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...