gpt4 book ai didi

python - 按日期范围计算变量的累积占用(求和)

转载 作者:行者123 更新时间:2023-12-02 01:26:16 29 4
gpt4 key购买 nike

让它成为以下 python pandas DataFrame,其中每一行代表一个人在酒店的住宿。

| entry_date | exit_date  | days   | other_columns |
| ---------- | ---------- | ------ | ------------- |
| 2022-02-01 | 2022-02-05 | 5 | ... |
| 2022-02-02 | 2022-02-03 | 2 | ... |
| 2022-04-10 | 2022-04-13 | 4 | ... |
| 2022-04-11 | 2022-04-12 | 2 | ... |
| 2022-04-12 | 2022-04-13 | 2 | ... |
| 2022-11-10 | 2022-11-15 | 6 | ... |

我想从前一个数据帧中创建一个数据帧,它代表每天该时刻酒店的入住情况。我没有考虑夜晚,只考虑白天的变化。

| date       | ocupation  |
| ---------- | ---------- |
| 2022-02-01 | 1 |
| 2022-02-02 | 2 |
| 2022-02-03 | 2 |
| 2022-02-04 | 1 |
| 2022-02-05 | 1 |
| 2022-04-10 | 1 |
| 2022-04-11 | 2 |
| 2022-04-12 | 3 |
| 2022-04-13 | 2 |
| 2022-11-10 | 1 |
| 2022-11-11 | 1 |
| 2022-11-12 | 1 |
| 2022-11-13 | 1 |
| 2022-11-14 | 1 |
| 2022-11-15 | 1 |

最佳答案

您可以使用date_rangevalue_counts :

# ensure datetime
# for year-day-month
df[['entry_date', 'exit_date']] = df[['entry_date', 'exit_date']].apply(pd.to_datetime, dayfirst=True)
# for year-month-day
df[['entry_date', 'exit_date']] = df[['entry_date', 'exit_date']].apply(pd.to_datetime, dayfirst=False)


(pd.Series([d for start, end in zip(df['entry_date'], df['exit_date'])
for d in pd.date_range(start, end, freq='D')], name='date')
.value_counts(sort=False)
.reset_index(name='ocupation')
)

输出:

        index  ocupation
0 2022-02-01 1
1 2022-02-02 2
2 2022-02-03 2
3 2022-02-04 1
4 2022-02-05 1
5 2022-04-10 1
6 2022-04-11 2
7 2022-04-12 3
8 2022-04-13 2
9 2022-11-10 1
10 2022-11-11 1
11 2022-11-12 1
12 2022-11-13 1
13 2022-11-14 1
14 2022-11-15 1

关于python - 按日期范围计算变量的累积占用(求和),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74558578/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com