У меня есть DataFrame (df), который содержит столбцы: ID, Начальная дата, Конечная дата и Значение, а также другой DataFrame (dates), который содержит все дни для каждого идентификатора из df.
В кадре данных дат я хочу суммировать значения, если они существуют в диапазоне каждого идентификатора
Вот мой код
import polars as pl
from datetime import datetime
data = {
"ID" : [1, 2, 3, 4, 5],
"Initial Date" : ["2022-01-01", "2022-01-02", "2022-01-03", "2022-01-04", "2022-01-05"],
"Final Date" : ["2022-01-03", "2022-01-06", "2022-01-07", "2022-01-09", "2022-01-07"],
"Value" : [10, 20, 30, 40, 50]
}
df = pl.DataFrame(data)
dates = pl.datetime_range(
start=datetime(2022,1,1),
end=datetime(2022,1,7),
interval="1d",
eager = True,
closed = "both"
).to_frame("date")
shape: (5, 4)
┌─────┬──────────────┬────────────┬───────┐
│ ID ┆ Initial Date ┆ Final Date ┆ Value │
│ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ str ┆ str ┆ i64 │
╞═════╪══════════════╪════════════╪═══════╡
│ 1 ┆ 2022-01-01 ┆ 2022-01-03 ┆ 10 │
│ 2 ┆ 2022-01-02 ┆ 2022-01-06 ┆ 20 │
│ 3 ┆ 2022-01-03 ┆ 2022-01-07 ┆ 30 │
│ 4 ┆ 2022-01-04 ┆ 2022-01-09 ┆ 40 │
│ 5 ┆ 2022-01-05 ┆ 2022-01-07 ┆ 50 │
└─────┴──────────────┴────────────┴───────┘
shape: (7, 1)
┌─────────────────────┐
│ date │
│ --- │
│ datetime[μs] │
╞═════════════════════╡
│ 2022-01-01 00:00:00 │
│ 2022-01-02 00:00:00 │
│ 2022-01-03 00:00:00 │
│ 2022-01-04 00:00:00 │
│ 2022-01-05 00:00:00 │
│ 2022-01-06 00:00:00 │
│ 2022-01-07 00:00:00 │
└─────────────────────┘
В этом случае 01 января 2022 г. значение будет 10. 02 января 2022 г. оно будет 10 + 20, а 3 января 2022 г. будет 10 + 20 + 30 и так далее. Другими словами, я хочу проверить, существует ли дата в диапазоне каждой строки DataFrame (df), и если да, суммируйте значения.
Я думаю, что подход для этого такой:
(
dates.with_columns(
pl.sum(
pl.when(
(df["Initial Date"] = pl.col("date"))
).then(df["Value"]).otherwise(0)
).alias("Summed Value")
)
)
Подробнее здесь: https://stackoverflow.com/questions/787 ... ing-polars
Суммирование значений на основе диапазонов дат в DataFrame с использованием Polars ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Суммирование значений на основе диапазонов дат в DataFrame с использованием Polars
Anonymous » » в форуме Python - 0 Ответы
- 26 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Суммирование значений на основе диапазонов дат в DataFrame с использованием Polars
Anonymous » » в форуме Python - 0 Ответы
- 6 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Изменить время отсортированного диапазона дат на другой список диапазонов дат в С#
Anonymous » » в форуме C# - 0 Ответы
- 35 Просмотры
-
Последнее сообщение Anonymous
-