python数据帧,获取事件的开始和结束列表
我有一个数据帧和一个整数值列(在我的例子中是0和1)。索引是时间。我需要一个列表,当“地区”的开始和结束。我可以用diff和loop来实现 例如:python数据帧,获取事件的开始和结束列表,python,algorithm,pandas,Python,Algorithm,Pandas,我有一个数据帧和一个整数值列(在我的例子中是0和1)。索引是时间。我需要一个列表,当“地区”的开始和结束。我可以用diff和loop来实现 例如: import pandas as pd df = pd.DataFrame(index = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) df['test'] = pd.DataFrame([0, 1, 1, 1, 0, 0, 1, 1, 1, 0], index = df.index) methodOfLooking = ((
import pandas as pd
df = pd.DataFrame(index = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
df['test'] = pd.DataFrame([0, 1, 1, 1, 0, 0, 1, 1, 1, 0], index = df.index)
methodOfLooking = ((2,4),(7,9)) # something like this should be the result
有没有获得结果的有效方法?您可以使用
diff
和zip
获取开始和结束索引:
ix = df.test.diff().fillna(0)
In [74]: zip(df.index[ix==1],df.index[ix==-1]-1)
Out[74]: [(2, 4), (7, 9)]