我試圖選擇 Dataframe 中滿足條件的行,以及它之前和之后的行(即使這些行不滿足條件。)條件是df['col1']中的值小于100idx=df.index[df['col1']<100]df.loc[idx]給我匹配條件 df['col1']<100 的所有行為了同時獲得上面一行和下面一行,我嘗試使用切片,df.iloc[idx-1:idx+1]但收到錯誤消息TypeError:無法使用這些索引器 [Int64Index([ 23362, 23363, 23364, 23365, 23366, 23367, 23368, 23369, 23370, 23371, .. . 129089, 129154, 129155, 129156, 129157, 129158, 129159, 129160, 129161, 129162], dtype='int64', length=7851)] of <class 'pandas.core.indexes.numeric.Int64索引'>
1 回答

搖曳的薔薇
TA貢獻1793條經(jīng)驗 獲得超6個贊
你已經(jīng)有了 bool 所以不需要過濾它index
,我們可以做shift
面具
m = df['col1']<100 df = df[m.shift(-1)|m.shift()|m]
添加回答
舉報
0/150
提交
取消