python - 如何将 sympy 符号添加到数据框值
问题描述
所以我试图向数据框列中的所有值添加一个 sympy 符号(b),但它似乎不起作用。
这些是代码:
import sympy as sp
import pandas as pd
df = pd.read_excel('salary.xlsx')
b = sp.symbols('b')
def fne():
for i in range(len(df)):
print((df.loc[i, "salary"] - (50+df.loc[i, "years"]*b))**2)
fne()
但我得到的结果是:
(38.0 - 11*b)**2
(27.3 - 6*b)**2
(25.3 - 7*b)**2
(46.4 - 20*b)**2
(37.7 - 8*b)**2
我想要的是实际值本身,例如,第一个结果看起来像这样:
(38.0−11)^2
解决方案
我已经告诉过其他一些海报sympy
并且numpy
没有整合。 sympy
对象在numpy
数组中工作,以至于它们可以被视为 Python 对象。看起来同样适用于pandas
.
在isympy
会话中,我有符号:
In [268]: tau
Out[268]: τ
In [269]: tau**2
Out[269]:
2
τ
In [270]: import pandas as pd
In [271]: S = pd.Series([tau, 1*tau, tau**2])
In [272]: S
Out[272]:
0 tau
1 tau
2 tau**2
dtype: object
In [273]: S.values
Out[273]: array([tau, tau, tau**2], dtype=object)
In [274]: [i for i in S]
Out[274]:
⎡ 2⎤
⎣τ, τ, τ ⎦
In [282]: S.tolist()
Out[282]:
⎡ 2⎤
⎣τ, τ, τ ⎦
系列(和数据框)将值存储为 numpy 数组(尽可能)。请注意,数组和系列的显示都是“普通”的。只有当我自己显示元素时,我才能获得sympy
格式。对象 dtype 数组使用repr(i)
来格式化i
元素。
In [276]: print(repr(tau**2))
tau**2
推荐阅读
- firebase - 在 Firestore 中使用 runTransaction 方法的同时写入操作不起作用
- c# - 获取在 ASP.NET 框架中工作的散列 Webpack 包
- python - 在 vscode 中尽可能使用 pipenv
- python - 在 python 中更改目录会出现语法错误
- python-3.x - 我的 Python 游戏敌人正在循环移动
- java - 从内部停止线程并从外部通知
- iis - 具有布尔属性的脚本上的出站 IIS 重写规则不起作用
- c# - c# - ASP.NET web api 控制器在注入服务时不工作
- angular - 使用带有自定义组件属性的 ngx 转换值
- macos - MacOS CoreData 故障删除传播预取失败