我想将符号的符号数学(例如,索引符号变量的求解和区分)与大熊猫系列或数据框(索引的外生数据)结合起来。
在我的应用程序中,只有一个指数,包括sympy和pandas。
此示例应解决每个re[i]
的索引符号变量i
,前提是来自两个系列qt
和pr
的数据也使用索引i
}。
我定义了索引i和索引符号re:
re = IndexedBase("re")
i = symbols("i", cls=Idx)
i = ["X", "Y", "Z"]
然后,我创建了具有相同索引的系列 (也可能是数据帧。此外,数据不必限于整数。):
pr = pd.Series([4, 5, 6], i, name="pr")
qt = pd.Series([2, 2, 2], i, name="qt")
该系列看起来如下:
pr
X 4
Y 5
Z 6
QT
X 2
Y 2
Z 2
接下来,我尝试使用sympy的解决方案来解决re[i]
:
solveset(qt * pr - re[i], re[i])
我的预期结果类似于:
re[X] = 8
re[Y] = 10
re[Z] = 12
但实际输出是:
ValueError: 0 -re[X, Y, Z] + 8
1 -re[X, Y, Z] + 10
2 -re[X, Y, Z] + 12
dtype: object is not a valid SymPy expression