Подтвердить что ты не робот

Добавить новый столбец в Pandas DataFrame Python

У меня есть dataframe в Pandas, например:

Col1 Col2
A     1 
B     2
C     3

Теперь, если я хотел бы добавить еще один столбец с именем Col3, а значение основано на Col2. В формуле, если Col2 > 1, то Col3 равно 0, иначе будет 1. Итак, в приведенном выше примере. Выходной сигнал:

Col1 Col2 Col3
A    1    1
B    2    0
C    3    0

Любая идея о том, как достичь этого?

4b9b3361

Ответ 1

Вы просто делаете противоположное сравнение. if Col2 <= 1. Это вернет булевскую серию со значениями False для значений больше 1 и True для другого. Если вы преобразуете его в dtype int64, True станет 1 и False станет 0,

df['Col3'] = (df['Col2'] <= 1).astype(int)

Если вы хотите получить более общее решение, в котором вы можете назначить любое число Col3 в зависимости от значения Col2, вы должны сделать что-то вроде:

df['Col3'] = df['Col2'].map(lambda x: 42 if x > 1 else 55)

Или:

df['Col3'] = 0
condition = df['Col2'] > 1
df.loc[condition, 'Col3'] = 42
df.loc[~condition, 'Col3'] = 55