python - 如何为数据框中的两个特定列选择两个数字之间的值以绘制为二维图
解决方案
由于您无法找到起点,我将首先收集您的数据并声明变量以保存 x 和 y 数据。
y_vals = [0.113, 0.117, 0.123, 0.129, 0.130, 0.160, 0.180, 0.210, 0.220, 0.260, 0.280]
x_vals = list(range(0, (len(y_vals)*10), 10))
上面,我初始化y_vals
为一个包含每个 y 值的列表。对于x_vals
,我将其初始化为随y_vals
. 例如,如果您要向 中添加更多 y 值y_vals
,则yx_vals
将随之增长。x_vals
利用range()
功能成长。您可以在此处阅读有关此功能的更多信息。
现在我们有了数据,是时候进入问题的核心了。
def getPoints(x_vals, y_vals):
points = []
for i in range(0, len(y_vals) - 1):
if ((y_vals[i] > 0.120) & (y_vals[i] < 0.140)):
x = x_vals[i]
y = y_vals[i]
points.append([x, y])
return points
上面,该方法getPoints()
负责查找介于 0.120 和 0.140 之间的值,并将这些点编译成一个列表。此函数返回一个带有嵌套列表的列表,这些列表将点显示为[x, y]
。
编辑:我以前使用库中的arange()
函数numpy
来检查数字是否在您的范围内。但是,不会以 100% 的精度存储,并且由于可以存储floats
的值的数量,通常会导致舍入。float
更简单的方法是使用比较来简单地检查数字是否在两个数字之间。例如:
if ((y_vals[i] > 0.120) & (y_vals[i] < 0.140))
现在,是时候将数据传递给getPoints()
函数了。
points = getPoints(x_vals, y_vals)
print(points)
输出如下:
[[20, 0.13], [30, 0.129], [40, 0.123]]
完整脚本:
def getPoints(x_vals, y_vals):
points = []
for i in range(0, len(y_vals) - 1):
if ((y_vals[i] > 0.120) & (y_vals[i] < 0.140)):
x = x_vals[i]
y = y_vals[i]
points.append([x, y])
return points
y_vals = [0.113, 0.117, 0.123, 0.129, 0.130, 0.160, 0.180, 0.210, 0.220, 0.260, 0.280]
x_vals = list(range(0, (len(y_vals)*10), 10))
points = getPoints(x_vals, y_vals)
print(points)
希望对您有所帮助:) 如果您有任何问题,请随时发表评论。
推荐阅读
- amazon-s3 - 如何在使用 Athena 连接器运行 Tableau 时将自动生成的文件存储在不同的 AWS S3 文件夹中?
- c++ - 检测哪个窗口在其他实例中具有焦点并向其发布带有 CString 参数的消息
- django - 在运行时 Django 添加字段
- flutter - 扩展超类时的异步/等待问题
- firebase - 为什么 Firestore 服务帐户需要 Firebase 管理员而不是 Firebase 实时数据库管理员?
- php - 如何使用 laravel 护照令牌传递登录用户数据对象?
- android - 如何只显示一次 Firebase 数据?
- azure-functions - Azure Function 的 Swashbuckle:自定义标头
- python - sklearn GradientBoostingRegressor 中的数值跳跃
- kotlin - Kotlin Collection 的 `component1` 到 `component5` 有什么用?