IF condition в пандах

У меня есть Dataframe в пандах и я хочу поместить в последней колонне, равной первой колонне каждый раз, когда было выполнено условие. Я это сделал с функцией и apply, но не, если есть другая более простая форма. Пример:

introducir la descripción de la imagen aquí

If A> 5: C = Б Эльсе: C = "Несовершеннолетний в 5"

introducir la descripción de la imagen aquí

0
задан 13.03.2019, 23:25
1 ответ

Мне приходят в голову три способа это делать, исходя из чего-то похожего на твой пример:

df = pd.DataFrame([[1, 'Microfono'],
                   [2, 'Plastico'], 
                   [5, 'equipo'], 
                   [7, 'Banana'], 
                   [8, 'Manzana'], 
                   [1, 'Camino']], columns=['A', 'B'])

первое решение было бы с loc:

df.loc[(df['A'] < 5), 'C'] = 'Menor a 5'
df.loc[(df['A'] >= 5), 'C'] = df['B']
print(df)

Следующая была бы с where:

df['C'] = df['B'].where(df['A']>=5, 'Menor a 5')
print(df)

, Хотя я думаю, что, если ты это сделал с apply, он также довольно сделан, я помещаю также, как он был бы:

df['C'] = df.apply(lambda x: 'Menor a 5' if x['A'] < 5 else x['B'], axis=1)
print(df)

Все они дали бы тебе:

   A          B          C
0  1  Microfono  Menor a 5
1  2   Plastico  Menor a 5
2  5     equipo     equipo
3  7     Banana     Banana
4  8    Manzana    Manzana
5  1     Camino  Menor a 5

С другой стороны, в линиях 2 и 9 твоего примера не выполняет условие, что ты поместил If A > 5 : C = B Else: C = "Menor a 5", я это сделал для того, чтобы я придал квадратную форму с нею resutados твоей таблицы, а именно If A >= 5 : C = B Else: C = "Menor a 5"

0
ответ дан 12.09.2019, 05:22

Теги

Похожие вопросы