提取熊猫中不连续的行集

时间:2020-04-22 10:56:32

标签: python python-3.x pandas dataframe

我有一个包含100行的pandas数据框。看起来像这样

id_number  Name Age Salary
00001       Alice 50 6.2234
00002       John  29 9.1
.
.
.
00098       Susan 36 11.58
00099       Remy  50 3.7
00100       Walter 50 5.52

我要从此数据框中提取与ID编号不位于11到20之间的个人相对应的行。我想要0到9、20到99行。

df.iloc允许提取连续的行集,例如20到99,但不能一次提取0到9和20到99。 我也尝试过df[(df['id_number'] >= 20) & (df['id_number'] < 10)],但是返回了一个空的数据框。

是否有一种简单的方法来执行此操作,而无需执行两次单独的提取及其串联操作?

2 个答案:

答案 0 :(得分:0)

您需要的是切片索引

在这种情况下,我们将11切片为20

数据

df=pd.Series(np.arange(1,101))
df

放下切片

df.drop(df.loc[11:20].index, inplace=True)
df

答案 1 :(得分:0)

这似乎可行(@FarhoodET建议):

df[(df['id_number'] => 20) | (df['id_number'] < 10)]