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

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

Сообщение Anonymous »

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

df = pl.from_repr("""
┌────────┬────────────┐
│ symbol ┆ date │
│ --- ┆ --- │
│ str ┆ str │
╞════════╪════════════╡
│ AAPL ┆ 2023-01-01 │
│ AAPL ┆ 2023-01-02 │
│ AAPL ┆ 2023-01-03 │
│ AAPL ┆ 2023-01-04 │
│ AAPL ┆ 2023-01-05 │ # AAPL has 5 dates
│ GOOGL ┆ 2023-01-01 │
│ GOOGL ┆ 2023-01-02 │
│ GOOGL ┆ 2023-01-03 │ # GOOGL has 3 dates
│ MSFT ┆ 2023-01-01 │
│ MSFT ┆ 2023-01-02 │
│ MSFT ┆ 2023-01-03 │
│ MSFT ┆ 2023-01-04 │ # MSFT has 4 dates
└────────┴────────────┘
""")

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

Мне нужно сделать даты каждой группы (символ grouped_by) согласованными во всех группах.
Поэтому мне нужно определить общие даты во всех группах (вероятно, с помощью соединения) и впоследствии соответствующим образом отфильтровать кадр данных.
Это может быть связано с:
  • Найти пересечение столбцов из разных фреймов данных Polars
    />
Я ищу общее решение. В приведенном выше примере результирующий 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

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