python - 通过两个数据帧之间的矢量化比较日期
问题描述
我有这个每周时间跨度的DataFrame df1
:
Startdate Enddate
0 2012-06-11 2012-06-17 23:59:59
1 2012-06-18 2012-06-24 23:59:59
2 2012-06-25 2012-07-01 23:59:59
3 2012-07-02 2012-07-08 23:59:59
4 2012-07-09 2012-07-15 23:59:59
我想找出我的其他数据框中的哪些日期在df2
这个开始结束结束日期之间df1
。之后,我想向 df2 添加一个新列,其中index
匹配行中df1
的 。
我的df2
样子:
FAID VALID_TO VALID_FROM
0 41279041 2100-06-10 02:00:00 2010-03-05 10:02:45
1 41279041 2100-06-10 02:00:00 2010-03-05 10:02:45
2 41279041 2100-06-10 02:00:00 2010-03-05 10:02:45
3 41279041 2100-06-10 02:00:00 2010-03-05 10:02:45
4 41279041 2100-06-10 02:00:00 2010-03-05 10:02:45
所以可能最好简短地总结一下我的问题:如果df2['VALID_FROM']
早于df1[startdate]
但又年轻于df1[enddate]
,则在新列中写入df1[index]
(index = week number)
df2.loc[:,'NewColumn'] = df2.loc[:,'NewColumn'].mask(((df1.loc[:,'Startdate'] < df2.loc[:,'VALID_FROM']) & (df2.loc[:,'VALID_FROM'] < df1.loc[:,'Enddate'])),df1.loc[:,'index'])
但随后发生此错误:
ValueError: Can only compare identically-labeled Series objects
有什么想法可以对该操作进行矢量化吗?
我的预期输出将如下所示:
FAID VALID_TO VALID_FROM Ind
0 41279041 2100-06-10 02:00:00 2010-03-05 10:02:45 2
1 41279041 2100-06-10 02:00:00 2010-03-05 10:02:45 7
2 41279041 2100-06-10 02:00:00 2010-03-05 10:02:45 3
3 41279041 2100-06-10 02:00:00 2010-03-05 10:02:45 14
4 41279041 2100-06-10 02:00:00 2010-03-05 10:02:45 25
解决了
df2['Date'] = pd.to_datetime(df2['VALID_FROM']) - pd.to_timedelta(7, unit='d')
df3 = df2.groupby([pd.Grouper(key="Date", freq="W-MON")])["Date","FAID"].count()
解决方案
df2['Date'] = pd.to_datetime(df2['VALID_FROM']) - pd.to_timedelta(7, unit='d')
df3 = df2.groupby([pd.Grouper(key="Date", freq="W-MON")])["Date","FAID"].count()
这解决了我的问题
推荐阅读
- python - 距离矩阵中点的坐标 - 实现问题
- django - 引导模式中的 django 表单不起作用
- python - 单击网站/python/webdriver/beautifulsoap 上的元素
- seaborn - 使用海运散点图简化 y 轴值
- javascript - 如何在 Cloud Firestore 触发器中运行异步代码
- javascript - 即使抛出错误,猫鼬也会返回文档
- java - 在 Java 中,如果舍入不一致,我如何预见舍入错误?例如 0.03 * 100 = 10.029999 但 10.05 * 100 = 10.0500001?
- php - 在 php 的函数 fwrite() 中我想写“$”字符?
- python - 运行scrapy CrawlerRunner时PyQt5可执行GUI冻结
- hugo - 在 blogdown 中使用 hugo-xmin 主题渲染站点时出现问题