我有一个只有两列的数据集。我想根据一列中的某些条件从中提取一小部分。考虑这个作为我的数据集。从数据框的列中选择特定值
A B
1 10
1 9
2 11
3 12
3 11
4 9
假设我想只提取其中具有10 B值的那些行 - 12,所以我会得到一个新的数据集:
A B
1 10
2 11
3 12
3 11
我尝试使用df.loc [DF [“B”] ==范围(10,12)]但它不工作,有人可以帮助我吗?
我有一个只有两列的数据集。我想根据一列中的某些条件从中提取一小部分。考虑这个作为我的数据集。从数据框的列中选择特定值
A B
1 10
1 9
2 11
3 12
3 11
4 9
假设我想只提取其中具有10 B值的那些行 - 12,所以我会得到一个新的数据集:
A B
1 10
2 11
3 12
3 11
我尝试使用df.loc [DF [“B”] ==范围(10,12)]但它不工作,有人可以帮助我吗?
您可以使用.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
另外还有一个(不使用.loc()
或.query()
),它看起来更像最初的(失败)的尝试:
df[df.B.isin(range(10,13))]
基本上.'loc'在这里没有必要 – Wen