Python3:设置数据范围

时间:2018-12-05 14:06:14

标签: python-3.x range

我觉得这必须非常基础,但是我找不到简单的方法。 我正在使用python3 我有许多数据文件带有x,y数据,其中x从0到140(浮动)。 假设

0, 2.1
0.5,3.5
0.8,3.2
...

我想导入25.4到28.1范围内的x值,以及它们对应的y值。每个文件的长度可能不同,因此x> 25.4的值可能会出现在不同的行中。

我在gnuplot中寻找与以下命令等效的东西:

set xrange [25.4:28.1]  

这一次我不能使用gnuplot,因为数据处理需要的不仅仅是gnuplot的功能。 我通过Pandas导入了数据,但无法设置范围。 谢谢。

1 个答案:

答案 0 :(得分:0)

r = range(start, stop, step)是Python中的模式。

例如,获得:

r == [0, 1, 2]

您会写:

r = [x for x in range(3)]

并获得:

r == [0, 5, 10]

您会写:

r = [x for x in range(0, 11, 5)]

这不会使您走得太远,因为:

r = [0, .2, 4.3, 6.3]
r = [x for x in r if x in range(3, 10)]
# r == []

但是您可以:

r = [0, .2, 4.3, 6.3]
r = [x for x in r if ((x > 3) & (x < 10))]
# r == [4.3, 6.3]

Pandas和Numpy为您提供了一种更为简洁的方法。考虑以下.between

的演示
import pandas as pd
import io

text = io.StringIO("""Close   Top_Barrier Bottom_Barrier
0       441.86  441.964112  426.369888
1       448.95  444.162225  425.227108
2       449.99  446.222271  424.285063
3       449.74  447.947051  423.678282
4       451.97  449.879254  423.029413""")

df = pd.read_csv(text, sep='\\s+')
df = df[df["Close"].between(449, 452)] # between
df

因此,对于您的df,您可以执行以下操作:df = df[df["x"].between(min, max)]