首页 > 解决方案 > 在 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')

标签: pythonpandasequation

解决方案


我相信你有两个问题:

在代码中,我相信你想做这样的事情:

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”。

希望这可以帮助。


推荐阅读