python-3.x - Python3:设置数据范围
问题描述
我觉得这一定很基本,但我找不到简单的方法。我正在使用 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 导入了数据,但我无法设置范围。谢谢你。
解决方案
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)]
推荐阅读
- javascript - AngularJS 如何从需要查询字符串参数和使用角度资源发布数据的 URL 获取数据?
- javascript - 修改 SVG 文件以在 SVG 标签中包含图形的宽度和高度
- php - 访问作为对象一部分的数组似乎失败
- sql - 如何获得计数以显示计数为 0 的 zip 计数
- c - 如何初始化嵌套结构
- wordpress - 如何防止古腾堡在画廊上传中调整图像大小?
- python - 如何在 sqlalchemy 中使用线程?
- docker - 赛普拉斯 ci 缺少 libgtk-x11-2.0.so.0
- python - 基于 pyparsing 的拆分
- javascript - Uncaught ReferenceError: boxChecked 什么时候没有定义?