Найти пересечение дат в сгруппированном полярном фрейме данныхPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Найти пересечение дат в сгруппированном полярном фрейме данных

Сообщение Anonymous »

Рассмотрим следующий `pl.DataFrame``:
import polars as pl

data = {
"symbol": ["AAPL"] * 5 + ["GOOGL"] * 3 + ["MSFT"] * 4,
"date": [
"2023-01-01",
"2023-01-02",
"2023-01-03",
"2023-01-04",
"2023-01-05", # AAPL has 5 dates
"2023-01-01",
"2023-01-02",
"2023-01-03", # GOOGL has 3 dates
"2023-01-01",
"2023-01-02",
"2023-01-03",
"2023-01-04", # MSFT has 4 dates
],
}

df = pl.DataFrame(data)

with pl.Config(tbl_rows=-1):
print(df)

shape: (12, 2)
┌────────┬────────────┐
│ symbol ┆ date │
│ --- ┆ --- │
│ str ┆ str │
╞════════╪════════════╡
│ AAPL ┆ 2023-01-01 │
│ AAPL ┆ 2023-01-02 │
│ AAPL ┆ 2023-01-03 │
│ AAPL ┆ 2023-01-04 │
│ AAPL ┆ 2023-01-05 │
│ GOOGL ┆ 2023-01-01 │
│ GOOGL ┆ 2023-01-02 │
│ GOOGL ┆ 2023-01-03 │
│ MSFT ┆ 2023-01-01 │
│ MSFT ┆ 2023-01-02 │
│ MSFT ┆ 2023-01-03 │
│ MSFT ┆ 2023-01-04 │
└────────┴────────────┘

Мне нужно сделать даты каждой группы (символ grouped_by) одинаковыми для всех групп.
Поэтому мне нужно определить общие даты для всех групп (вероятно, с помощью join) и впоследствии соответствующим образом отфильтровать фрейм данных.
Это может быть связано с поиском пересечения столбцов из разных полярных фреймов данных.
I ищу общее решение. В приведенном выше примере результирующий pl.DataFrame должен выглядеть следующим образом:
shape: (9, 2)
┌────────┬────────────┐
│ symbol ┆ date │
│ --- ┆ --- │
│ str ┆ str │
╞════════╪════════════╡
│ AAPL ┆ 2023-01-01 │
│ AAPL ┆ 2023-01-02 │
│ AAPL ┆ 2023-01-03 │
│ GOOGL ┆ 2023-01-01 │
│ GOOGL ┆ 2023-01-02 │
│ GOOGL ┆ 2023-01-03 │
│ MSFT ┆ 2023-01-01 │
│ MSFT ┆ 2023-01-02 │
│ MSFT ┆ 2023-01-03 │
└────────┴────────────┘


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

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

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

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

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

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

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