Python - новый столбец в Dataframe с использованием значений двух других столбцов - PullRequest
0 голосов
/ 05 мая 2020

У меня есть фрейм данных titanic_df. Хотите создать новый столбец со значением 1, если SibSp равен 0 И Parch равен 0. Может кто-нибудь сказать мне, эффективен ли приведенный ниже метод?

titanic_df['Alone'] = [1 if x == 0 & y == 0 else 0 for x,y in list(zip(titanic_df.SibSp,titanic_df.Parch))]

Я знаю, что в SAS это будет буквально

data dset;
     set dset;
     if sibsp = 0 and Parch = 0 then alone = 1;
     else alone = 0;
run;

Мне просто кажется, что создание нового столбца на основе значений из двух других столбцов должно быть немного проще?

1 Ответ

1 голос
/ 05 мая 2020

Вы можете создать новый столбец и инициализировать его с помощью 0, например

titanic_df['Alone'] = 0

Затем вы установите 1 для ячеек, для которых SibSp и Parch равны 0

titanic_df.loc[(titanic_df['SibSp'] == 0) & (titanic_df['Parch'] == 0), 'Alone'] = 1

Насколько мне известно, ваше решение не очень эффективно, поскольку оно создает объект zip с вашим DataFrame (столбцы SibSp и Parch), затем преобразует его в список и, наконец, просматривает его.

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