问题描述
[('1975-01-03','1975-01-06'),('1975-01-13','1975-01-15')
('1975-01-31','1975-02-02'),('1975-02-03','1975-02-13'),('1975-03-09','1975-03-14'),('1975-03-14','1975-03-16'),('1975-03-26','1975-03-29'),('1975-04-8','1975-04-13'),('1975-04-22','1975-04-24'),('1975-05-4','1975-05-07')]
我想根据以下数据框编辑该元组:
如果DST
感谢您的时间。
解决方法
具有DST的数据框
>>> a =pd.DataFrame({'DST':[33,11,2,-67,-80],'Date':['1975-01-03','1975-01-06','1975-01-07','1975-01-15']})
>>> a
DST Date
0 33 1975-01-03
1 11 1975-01-06
2 2 1975-01-07
3 -67 1975-01-07
4 -80 1975-01-15
您的教堂
>>> t = [('1975-01-03','1975-01-06'),('1975-01-13','1975-01-15'),('1975-01-31','1975-02-02'),('1975-02-03','1975-02-13'),('1975-03-09','1975-03-14'),('1975-03-14','1975-03-16'),('1975-03-26','1975-03-29'),('1975-04-8','1975-04-13'),('1975-04-22','1975-04-24'),('1975-05-4','1975-05-07')]
现在过滤掉DST大于-50的所有元素
>>> keep = a[a['DST'] < -50]
>>> keep
DST Date
3 -67 1975-01-07
4 -80 1975-01-15
迭代抛出所有有效日期,并检查它们是否在元组范围内
>>> for i in keep['Date']:
final = []
final = final + [j for j in t if i>=j[0] and i<=j[1]]
带有元组的最终列表
>>> final
[('1975-01-13','1975-01-15')]
请为此类数据框使用代码,以使解决您问题的数据框不需要自己生成。