如何解决如何使用日期作为多个日期范围的虚拟变量?
我正在处理 Pandas 数据框,我需要使用多变量回归分析。我使用的自变量是 yyyy-mm-dd
格式的日期。到目前为止,我已经明白我可以使用虚拟变量作为日期。
场景描述如下:
- 数据集中的日期来自
2017-08-18 to 2019-08-12
- 我需要为所有日期计算
count
的products
- 现在我需要检查多个日期和相应日期范围的
mean
的products
,即,如果我取2017-09-21
,那么我需要计算products
的平均值7 days before
和7 days after
2017-09-21
。 - 现在我有
mean_products_before (2017-09-15,2017-09-16,2017-09-17,...,2017-09-21)
和mean_products_after(2017-09-21,2017-09-22,2017-09-23,2017-09-28)
- 现在我需要计算平均值的不是一个日期而是多个日期:
017-09-21,2017-09-28,2017-10-17,2017-11-26,2017-12-09,and few more
- 问题是我可以在这种情况下使用虚拟变量吗?甚至有可能还是我用其他更好的方法来做?目的是找出日期(自变量)是否与
mean_products_before
和mean_products_after
这两个因变量有影响或关系。
如果有任何不清楚的地方,我深表歉意。请随时提出更多问题。
解决方法
这是您可以利用日期值获取虚拟值的方法之一。
from datetime import datetime,timedelta,date
import pandas as pd
_date = datetime.fromisoformat('2017-08-18')
dateList=[]
for i in range(0,10):
_date += timedelta(days=1)
dateList.append(_date.date().isoformat())
pd.get_dummies(pd.Series(dateList))
输出将是。
2017-08-19 2017-08-20 2017-08-21 2017-08-22 2017-08-23 2017-08-24 2017-08-25 2017-08-26 2017-08-27 2017-08-28
0 1 0 0 0 0 0 0 0 0 0
1 0 1 0 0 0 0 0 0 0 0
2 0 0 1 0 0 0 0 0 0 0
3 0 0 0 1 0 0 0 0 0 0
4 0 0 0 0 1 0 0 0 0 0
5 0 0 0 0 0 1 0 0 0 0
6 0 0 0 0 0 0 1 0 0 0
7 0 0 0 0 0 0 0 1 0 0
8 0 0 0 0 0 0 0 0 1 0
9 0 0 0 0 0 0 0 0 0 1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。