我有一个数据框和一个包含整数值的列(在我的例子中是 0 和 1)。指标是时间。当“区域”开始和结束时,我需要一个列表。我可以用 diff 然后循环来做到这一点。
示例:
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)]
关于python数据框,获取事件开始和结束的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33670905/