如何将 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


湖上湖
浏览 86回答 1
1回答

千万里不及你

我已经告诉过其他一些海报,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       tau1       tau2    tau**2dtype: objectIn [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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python