【发布时间】:2020-12-13 18:55:44
【问题描述】:
具有 DST 值的数据框:
data0 = pd.DataFrame({'DST':[33,11,-52,7,80,34,41,68,-87],'Date':['1975-01-03','1975-01-04','1975-01-07','1975-01-08','1975-01-13','1975-01-14','1975-01-15','1975-02-01','1975-02-03']})
data0
DST Date
0 33 1975-01-03
1 11 1975-01-04
2 -52 1975-01-07
3 7 1975-01-08
4 80 1975-01-13
5 34 1975-01-14
6 41 1975-01-15
7 68 1975-02-01
8 -87 1975-02-03
我拥有的元组:
combined_date = [('1975-01-03', '1975-01-06'),('1975-01-13', '1975-01-15'),
('1975-01-31', '1975-02-02'),('1975-02-03', '1975-02-13')]
问题: 如果 DST 在元组中的这些日期之间低于 -50,我必须删除元组元素。 我试过代码:
for i in len(data0):
if data0['DST'][i]<-50:
del (j for j in combined_date if data0['DATE'][i]>=j[0] and data0['DATE'][i]<=j[1])
预期输出:
('1975-01-03', '1975-01-06'),('1975-01-13', '1975-01-15'),
('1975-01-31', '1975-02-02')
发生错误:无法删除生成器表达式。
注意
如果 DST 发现低于 -50,则必须删除该元组!
【问题讨论】:
-
@jezrael 感谢您指出错误。这是编辑过的。
-
因为在该区间 DST 低于 -50。在 1975-02-03,DST 是
-
其实我的数据在每一分钟。所以我不能上传样本数据。例如 1 个月我有 31*24*60 行。对样本 df 有任何想法吗?
-
对不起,我再次检查了你的代码,现在它完美了,我想你也改变
combined_date:(
标签: python pandas numpy date math