我试图选择 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 回答
![?](http://img1.sycdn.imooc.com/545867790001599f02200220-100-100.jpg)
摇曳的蔷薇
TA贡献1793条经验 获得超6个赞
你已经有了 bool 所以不需要过滤它index
,我们可以做shift
面具
m = df['col1']<100 df = df[m.shift(-1)|m.shift()|m]
添加回答
举报
0/150
提交
取消