python - 在 pandas 中使用方程
问题描述
我有一个看起来像块的图表,我想把它雕刻成一个圆圈。我有一个包含两列的数据框,一个 xy 散点图。我收到变量 'eq = "(x-2.5)**2 + (y-2.5)**2"' 的错误,但我认为我在其他地方遵循指南。为什么它不喜欢粗线?谢谢!
import pandas as pd
data = pd.read_csv('grid.csv')
df = pd.DataFrame(data, columns = [ 'x','y']
eq = "(x-2.5)**2 + (y-2.5)**2"
refined = df[ df.eval(eq) = 4]
refined.to_csv('gridoutput.csv')
解决方案
我相信你有两个问题:
在代码中,我相信你想做这样的事情:
import pandas as pd
data = pd.read_csv('grid.csv')
df = pd.DataFrame(data, columns = ['x','y'])
equation_x = 'Some transformation based on y' # f(y) = x
equation_y = 'Some transformation based on x' # f(x) = y
df['new_x'] = df.eval(equation_x)
df['new_y'] = df.eval(equation_y)
df.to_csv('gridoutput.csv')
第二个问题是您必须更具体,因为您想对“x”进行转换,对“y”进行转换。此外,结果有两种解决方案。因为对于“y”的每个点,您都会找到 2 个可能的“x”。
您更了解您的数据,然后您可以找到适合您数据的 x 和 y 的精确转换。此外,对于低于或高于 x 或 y = 2.5(圆心)的情况,您可能必须使用“if”。
希望这可以帮助。
推荐阅读
- typescript - 在 If 语句中确定 IDE 中的条件类型
- java - 如何在 X 上的 JDialog 中心设置 JLabel?
- swift - 如何添加UIButton的渐变阴影
- php - Laravel HasManyThrough 与 onetomany 和 onetoone
- java - 如何以编程方式获取 JPA API 版本?
- python - 元素矩阵乘法可能通过共享内存获得性能提升?
- createjs - EaselJS 的 getObjectsUnderPoint (MouseMovement) 的高效方法
- android - 营养历史数据始终从 Android 上的 Google Fit 返回第一项
- javascript - 如何确保在事件侦听器触发后加载 Javascript 文件?
- kubernetes - Vault 颁发者证书不包括中间链