如何在Pandas数据框中的特定列中选择值范围之间的所有行

时间:2019-12-02 11:23:53

标签: pandas dataframe

我有以下示例df,我想选择特定列中一系列值之间的所有行:

          0       1       2     3     4     5  index
0   -252.44 -393.07  886.72 -2.04  1.58 -2.41      0
1   -260.25 -415.53  881.35 -3.07  0.08 -1.66      1
2   -267.58 -412.60  893.07 -2.98 -1.15 -2.66      2
3   -279.30 -417.97  880.86 -1.15 -0.50 -1.37      3
4   -252.93 -395.51  883.30 -1.30  1.43  4.17      4

我想获取以下df(索引值1-3之间的所有行):

          0       1       2     3     4     5  index
1   -260.25 -415.53  881.35 -3.07  0.08 -1.66      1
2   -267.58 -412.60  893.07 -2.98 -1.15 -2.66      2
3   -279.30 -417.97  880.86 -1.15 -0.50 -1.37      3

我该怎么办?

我尝试了以下无效的方法:

new_df = df[df['index'] >= 1 & df['index'] <= 3]

1 个答案:

答案 0 :(得分:1)

最大和最小之间:使用on

between()

您的尝试>>> import pandas as pd >>> df = pd.DataFrame({'a': [1,2,3], 'b':[11,12,13]}) >>> df a b 0 1 11 1 2 12 2 3 13 >>> df[df.a.between(1,2)] a b 0 1 11 1 2 12 在两个地方是错误的:

  • 它是new_df = df[df['index'] >= 1 & df['index'] <= 3],而不是df.index
  • 使用多个过滤器时,请使用括号:df["index"]