【发布时间】:2018-05-25 07:21:40
【问题描述】:
我有以下数据框:
df = pd.DataFrame({'index':[0,1,2,3,4,5,6,7,8,9,10], 'X':[0,0,1,1,0,0,1,1,1,0,0]})
df.set_index('index', inplace = True)
X
index
0 0
1 0
2 1
3 1
4 0
5 0
6 1
7 1
8 1
9 0
10 0
我需要返回一个元组列表,显示每个 1 序列的 1 的第一个和最后一个实例的索引值(抱歉,如果这令人困惑)。即
想要:
[(2,3), (6,8)]
第一个 1 的第一个实例出现在索引点 2,然后该序列中的最后一个 1 出现在索引点 3。下一个 1 出现在索引点 6,该序列中的最后一个 1 出现在索引点 8 .
我尝试过的:
我可以使用 numpy 的 argmax 函数来获取第一个。即
x1 = np.argmax(df.values)
y1 = np.argmin(df.values[x1:])
(x1,2 + y1 - 1)
这会给我第一个元组,但迭代似乎很乱,我觉得有更好的方法。
【问题讨论】:
标签: python python-3.x pandas dataframe