从数据框中的列中选择特定值

时间:2017-09-02 06:45:52

标签: python pandas

我有一个只有两列的数据集。我想根据一栏中的某些条件从中提取一小部分。将此视为我的数据集。

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”] ==范围(10,12)] ,但它不起作用,有人可以帮我这个吗?

2 个答案:

答案 0 :(得分:6)

您可以使用.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

或者,good'ol 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

答案 1 :(得分:0)

这是另一个(不使用.loc().query()),它看起来更像是初始(不成功)尝试:

df[df.B.isin(range(10,13))]