Как поменять местами значения столбцов в зависимости от условий в полярах Python?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как поменять местами значения столбцов в зависимости от условий в полярах Python?

Сообщение Anonymous »

У меня есть кадр данных, как показано ниже:

Код: Выделить всё

df = pl.DataFrame({'last_name':[None,'mallesh','bhavik'],
'first_name':['a','b','c'],
'middle_name_or_initial':['aa','bb','cc']})

Код: Выделить всё

shape: (3, 3)
┌───────────┬────────────┬────────────────────────┐
│ last_name ┆ first_name ┆ middle_name_or_initial │
│ ---       ┆ ---        ┆ ---                    │
│ str       ┆ str        ┆ str                    │
╞═══════════╪════════════╪════════════════════════╡
│ null      ┆ a          ┆ aa                     │
│ mallesh   ┆ b          ┆ bb                     │
│ bhavik    ┆ c          ┆ cc                     │
└───────────┴────────────┴────────────────────────┘
Здесь я хотел бы найти наблюдение, у которого имя и отчество не NULL, а фамилия имеет значение NULL.
В этом случае last_name должно принимать значение значение из first_name, first_name должно принимать значение из middle_name, а middle_name должно быть NULL.
ожидаемый результат:

Код: Выделить всё

shape: (3, 3)
┌───────────┬────────────┬────────────────────────┐
│ last_name ┆ first_name ┆ middle_name_or_initial │
│ ---       ┆ ---        ┆ ---                    │
│ str       ┆ str        ┆ str                    │
╞═══════════╪════════════╪════════════════════════╡
│ a         ┆ aa         ┆ null                   │
│ mallesh   ┆ b          ┆ bb                     │
│ bhavik    ┆ c          ┆ cc                     │
└───────────┴────────────┴────────────────────────┘
Я пробую с помощью этой команды:

Код: Выделить всё

df.with_columns(
pl.when((pl.col('first_name').is_not_null()) & (pl.col('middle_name_or_initial').is_not_null()) & (pl.col('last_name').is_null()))
.then(pl.col('first_name').alias('last_name')).otherwise(pl.col('last_name').alias('first_name')),
pl.when((pl.col('first_name').is_not_null()) & (pl.col('middle_name_or_initial').is_not_null()) & (pl.col('last_name').is_null()))
.then(pl.col('middle_name_or_initial').alias('first_name')).alias('middle_name_or_initial')
)
Но он не дает ожидаемого результата.


Подробнее здесь: https://stackoverflow.com/questions/737 ... hon-polars
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Javafx 3D Могу ли я поменять местами ось X и ось Y в групповом объекте?
    Anonymous » » в форуме JAVA
    0 Ответы
    108 Просмотры
    Последнее сообщение Anonymous
  • Как поменять местами гласные в строке с помощью Java?
    Anonymous » » в форуме JAVA
    0 Ответы
    30 Просмотры
    Последнее сообщение Anonymous
  • Как поменять местами гласные в строке с помощью Java?
    Anonymous » » в форуме JAVA
    0 Ответы
    41 Просмотры
    Последнее сообщение Anonymous
  • Вопрос о стратегии замены узлов в Linux «Красно-черное дерево»: почему бы просто не поменять местами данные вместо узлов
    Anonymous » » в форуме Linux
    0 Ответы
    77 Просмотры
    Последнее сообщение Anonymous
  • Как поменять местами выходы монитора
    Anonymous » » в форуме Linux
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»