Мне нужно создать новый столбец, сравнив значения столбца с его медианой, и если значение> медианы, добавьте 1, еще добавьте 0 в новый столбец - PullRequest
0 голосов
/ 13 июля 2020

Вот мой dataFrame

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.rand(5, 5))
          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 = df[2].median()

Вот что я хочу сделать - взять 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, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...