当前位置: 首页 > 知识库问答 >
问题:

如何将字符串百分比转换为浮点小数?

霍浩皛
2023-03-14

如何将字符串百分比转换为浮点小数?我写了这段代码,当我运行它时,我只会返回一些错误,如“无法将系列转换为”

from yahoo_fin import options
from yahoo_fin import stock_info as si
import numpy as np
from scipy.stats import norm

stock = input("Enter stock symbol: Ex:QQQ ") #this is the stock ticker
expiry = input("Enter option expiration: Ex:11/05/2021 ") # date of expiry

options.get_options_chain(stock)
chain = options.get_options_chain(stock,expiry)

si.get_live_price(stock)
chain["calls"]

r = .025 #risk free interest rate
S = si.get_live_price(stock) #current price of the underlying stock
K = chain["calls"].Strike #the strike price of the option
t = float(input("time until expiry in days  = ")) #days until expiry
T = t/365 #years until expiry
s = chain["calls"]['Implied Volatility'] 
sigma = chain["calls"]['Implied Volatility'] #the Implied Volatility
print(sigma)

def blackScholes(r, S, K, T, sigma): #using the Black-Scholes formula
    "Calculate BS option price for a call/put"
    d1 = (np.log(S/K)+(r+sigma**2/2)*T)/(sigma*np.sqrt(T))
    d2 = d1 - sigma*np.sqrt(T)
    try:
            price = S*norm.cdf(d1, 0, 1) - K*np.exp(-r*T)*norm.cdf(d2, 0, 1) 
            #print("Option Delta is: ",norm.cdf(d1, 0, 1))
            return price
    except:
        print("Please confirm all option parameters above!!!")
print("Option Value is: ", round(blackScholes(r, S, K, T, sigma),2))

共有1个答案

咸昊昊
2023-03-14

此代码不可读或可测试,因为它引用的变量甚至尚未声明。

然而,如果您的问题是“如何将字符串百分比转换为浮点小数?”处理序列时,可以执行以下操作:

import pandas

s = pandas.Series(["2%", "2.0%", ".09999%", "100%"]) // example series
s = s.apply(lambda x: float(x[:-1]) / 100)
print(s)

或者在您的情况下:

<代码>链[“调用”][“隐含波动率”]=链[“调用”][“隐含波动率”]。应用(λx:float(x[:-1])/100)

此代码运行pandas。系列应用于传递了一个函数的序列(lambda x:[代码]指的是一个未命名的小函数,其中x是序列中的每个值),该函数去掉%符号,转换为浮点,然后除以100。

希望有帮助(第一个stackoverflow答案)。

 类似资料:
  • 问题内容: 在熊猫中使用read_csv时,是否可以将“ 34%”之类的值直接转换为int或float?我希望将其直接读取为0.34。 在read_csv中使用它不起作用: 在将csv加载为’df’之后,这也无法正常工作,并显示错误“ float()的无效文字:34%” 我最终使用了这个可行但长期困扰的东西: 问题答案: 您可以定义一个自定义函数以将百分比转换为浮点数 我对浮点数的百分比是ashw

  • 问题内容: 这是我正在查看的内容: 因此,我知道不能完全用二进制表示“ p” 1.15的十进制值。 因此,大的十进制大“ bdp”输出对我来说非常有意义……这是浮点数的实际值。 问题1 当浮点数“ p”转换回字符串以进行输出(如1.15)时,如何四舍五入(从内部1.149..375到1.15)? 在文档中的什么地方指定?toString javadoc并没有真正帮助(至少对我来说)。 我在语言规范

  • 我看到的是: 所以我知道“p”1.15的十进制值不能用二进制来精确表示。 所以大的十进制“bdp”输出对我来说非常有意义……这是浮点数的实际值。 问题 1 当浮点数“p”转换回字符串以进行输出(如 1.15)时,该舍入如何/在何处发生(从内部 1.149..375 值转换为 1.15)? 它在文档中的哪个位置指定?托斯特林爪哇并没有真正的帮助(至少我)。 我确实在语言规范中看到了这一点: 浮点和双

  • 问题内容: 正如标题所说。我不认为有可能这样做,但如果可以告诉我。 这是我正在编写的bukkit(minecraft服务器)插件所必需的。我要执行一个命令:tnt [power]。电源是我想转换为浮点数的返回字符串。 谢谢 问题答案: 用于进行转换。 和之间的区别只是回报。如果需要(对象),请使用前者;如果要数字,请使用后者。

  • 问题内容: 我在标准库上进行了查找,但未发现类似问题。因此,有没有一种方法可以在不滚动我自己的函数的情况下进行以下操作?如果没有内置的方法,那么如果有人编写了精美的函数,奖励积分就可以了。 问题答案: 将用作:

  • 问题内容: http://golang.org/pkg/strconv/ http://play.golang.org/p/4VNRgW8WoB 如何将浮点数转换为字符串格式?这是google游乐场,但未获得预期的输出。(2e + 07)我想得到“ 21312421.213123” 请帮助我从浮点数中获取字符串。谢谢 问题答案: 试试这个 如果只想获得尽可能高的位数精度,则特殊精度-1使用所需的最