我有一个只有两列的数据集。我想根据某一栏的一些条件从其中提取一小部分。把这个当作我的数据集吧。
A B
1 10
1 9
2 11
3 12
3 11
4 9假设我只想从10-12提取B中有值的行。因此,我将得到一个新的数据集如下:
A B
1 10
2 11
3 12
3 11我试过使用df.loc[df"B“== range(10,12)],但它不起作用,有人能帮我吗?
发布于 2017-09-02 06:50:03
您可以使用.between
In [1031]: df.loc[df.B.between(10, 12)]
Out[1031]:
A B
0 1 10
2 2 11
3 3 12
4 3 11或者,isin
In [1032]: df.loc[df.B.isin(range(10, 13))]
Out[1032]:
A B
0 1 10
2 2 11
3 3 12
4 3 11或者,query
In [1033]: df.query('10 <= B <= 12')
Out[1033]:
A B
0 1 10
2 2 11
3 3 12
4 3 11或者,很好的boolean
In [1034]: df.loc[(df.B >= 10) & (df.B <= 12)]
Out[1034]:
A B
0 1 10
2 2 11
3 3 12
4 3 11发布于 2017-09-02 07:58:10
还有一个(不使用.loc()或.query())看起来更像是最初(不成功)的尝试:
df[df.B.isin(range(10,13))]https://stackoverflow.com/questions/46011246
复制相似问题