У меня есть Dataframe в пандах и я хочу поместить в последней колонне, равной первой колонне каждый раз, когда было выполнено условие. Я это сделал с функцией и apply, но не, если есть другая более простая форма. Пример:
If A> 5: C = Б Эльсе: C = "Несовершеннолетний в 5"
Мне приходят в голову три способа это делать, исходя из чего-то похожего на твой пример:
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"