选择行匹配条件,也可以选择上一行和下一行

我试图选择 Dataframe 中满足条件的行,以及它之前和之后的行(即使这些行不满足条件。)

条件是df['col1']中的值小于100

idx=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索引'>


慕尼黑的夜晚无繁华
浏览 88回答 1
1回答

摇曳的蔷薇

你已经有了 bool 所以不需要过滤它index,我们可以做shift面具m&nbsp;=&nbsp;df['col1']<100 df&nbsp;=&nbsp;df[m.shift(-1)|m.shift()|m]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python