我想要一个python函数,以非连续方式搜索值小于-1或大于1的日期。换句话说,
它应该导致 1993年3月17日(日期小于-1的日期), 1993年3月24日(值大于+1的日期) 1993年3月25日(值小于-1的日期) 1993年3月29日(值大于+1的日期) 1993年4月1日(值大于+1的日期)。
它应该跳过例如3/18/1993,因为即使它的值(-1.3)小于-1,我们已经遇到过3/17/1993值小于-1。
非常感谢您!
答案 0 :(得分:2)
data = dict( a= 0.2, b= 0.3, c= -1.5, d= -1.3, e= 0.3, f= 0.2, g= 12, h= -1.2, i= -1.3, j= 1.4, k= 0.3)
neg = True
for (k,v) in data.items():
if((neg and v<-1) or (not neg and v>1)):
print(k)
neg = not neg
返回:
c
g
h
j
尽管确保键已排序,但逻辑与字典或数据框相同:
(pi6 637) $ cat /tmp/x.py
#! /usr/bin/env python
# -*- coding: UTF8 -*-
import pandas as pd
data = dict( a= 0.2, b= 0.3, c= -1.5, d= -1.3, e= 0.3, f= 0.2, g= 12, h= -1.2, i= -1.3, j= 1.4, k= 0.3)
df = pd.Series(data)
neg = True
for i,r in df.sort_index().iteritems():
if((neg and r<-1) or (not neg and r>1)):
print(i)
neg = not neg
(pi6 638) $ /tmp/x.py
c
g
h
j