Изменение значений столбца в кадре данных pandas - PullRequest
0 голосов
/ 27 июня 2018

Я хочу изменить значение столбца Cabin в моем фрейме данных.

Вот мой фрейм данных:

enter image description here

Я хотел бы присвоить значение 1, где Cabin не равно 0. Это означает, что значение C85, C123, E46 должно быть 1, а остальные значения должны быть одинаковыми.

Это код, но я получаю ошибку значения.

if df_train.Cabin != 0:
   df_train.Cabin = 1
else:
   df_train.Cabin = 0

Ответы [ 3 ]

0 голосов
/ 27 июня 2018

попробуй np.where

df['newCabin'] = np.where(df['cabin'] != 0, 1, df['cabin'])

print(df)
cabin newCabin
    0        0
  C85        1
    0        0
 C123        1
    0        0
    0        0

и если вам не нужен дополнительный новый столбец, вы можете сделать это тоже

df['cabin'] = np.where(df['cabin'] != 0, 1, df['cabin'])
print(df)
cabin
    0
    1
    0
    1
    0
    0
0 голосов
/ 27 июня 2018

простой oneliner, который должен работать

df_train['cabin'][df_train['cabin'] != '0'] = 1
0 голосов
/ 27 июня 2018

Просто используйте df.apply:

df_train["new_Cabin"] = df_train["Cabin"].apply(lambda x: x != "0").astype(int)

Или еще проще:

df["new_Cabin"] = (df_train["Cabin"] != "0").astype(int)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...