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

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

Сообщение Anonymous »

Я пытаюсь реструктурировать фрейм данных, объединив значения из нескольких пар столбцов в один столбец для каждой пары. Например, у меня есть столбец age_pre и столбец age_post, и я хочу объединить эти два столбца в один столбец age. То же самое со столбцами Exposure_pre и Exposure_post.

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

df = pl.from_repr("""
┌─────┬─────────┬──────────┬──────────────┬───────────────┐
│ id  ┆ age_pre ┆ age_post ┆ exposure_pre ┆ exposure_post │
│ --- ┆ ---     ┆ ---      ┆ ---          ┆ ---           │
│ i64 ┆ i64     ┆ i64      ┆ f64          ┆ f64           │
╞═════╪═════════╪══════════╪══════════════╪═══════════════╡
│ 123 ┆ 55      ┆ 56       ┆ 0.49         ┆ 0.51          │
│ 123 ┆ 56      ┆ 57       ┆ 0.49         ┆ 0.51          │
│ 456 ┆ 49      ┆ 50       ┆ 0.8          ┆ 0.2           │
│ 456 ┆ 50      ┆ 51       ┆ 0.8          ┆ 0.2           │
└─────┴─────────┴──────────┴──────────────┴───────────────┘
""")
Мой желаемый результат будет выглядеть так

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

shape: (8, 3)
┌─────┬─────┬──────────┐
│ id  ┆ age ┆ exposure │
│ --- ┆ --- ┆ ---      │
│ i64 ┆ i64 ┆ f64      │
╞═════╪═════╪══════════╡
│ 123 ┆ 55  ┆ 0.49     │
│ 123 ┆ 56  ┆ 0.51     │
│ 123 ┆ 56  ┆ 0.49     │
│ 123 ┆ 57  ┆ 0.51     │
│ 456 ┆ 49  ┆ 0.8      │
│ 456 ┆ 50  ┆ 0.2      │
│ 456 ┆ 50  ┆ 0.8      │
│ 456 ┆ 51  ┆ 0.2      │
└─────┴─────┴──────────┘
Я попробовал создать несколько объединенных фреймов данных и использовать .hstack() для создания фрейма данных с желаемым результатом, но это кажется действительно неэффективным. Как я могу сделать это с помощью синтаксиса Polars?

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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