Вы парни! Я новичок в Pandas, и я немного озадачен этим вопросом. У меня есть 2 столбца с текстом в них. Я хочу создать новый столбец, представляющий двоичное представление логических значений. Два столбца должны быть преобразованы в true, если у них есть значение, или в false, если у них нет значения. Я пробовал использовать notnull () и isnull (), но пустые значения приводят к True вместо False.

Я хочу взять это:

    dicts = {"names": ["John", "Jill", "Michael"], "ages": ["8", " ", " "]}
    df = pd.DataFrame(dicts)

И превратите его в это (где нулевые значения оцениваются как false:

---------------------
|  names   |  ages  |
----------------------
   True    |   True
   True    |   False
   True    |   False

Then merge them (where the True values are dominant):

--------------------------------
|  names   |  ages  |  combined |
---------------------------------
   True    |  True  |   True
   True    |  False |   True
   True    |  False |   True

The final product should look like this:

--------------------------------
|  names   |  ages  |  combined |
---------------------------------
   John    |    8   |     1
   Jill    |        |     1
  Michael  |        |     1

 

Как это исправить?

1
NoSoyTuMadre 30 Ноя 2020 в 23:06

1 ответ

Лучший ответ

Ты мог бы сделать

df['combined'] = df.fillna(' ').ne(' ').any(axis=1).astype(int)
print(df)

Вывод

     names ages  combined
0     John    8         1
1     Jill              1
2  Michael              1
0
Dani Mesejo 30 Ноя 2020 в 20:13