【问题标题】:Having trouble formatting value as a percentage using print使用 print 将值格式化为百分比时遇到问题
【发布时间】:2020-11-16 15:51:58
【问题描述】:

我有这个代码:

from empyrical import max_drawdown
from pandas_datareader import data as pdr

myStartDate = "2017-01-01"
myEndDate = "2017-04-30"
myTicker = "SPY"
myData = pdr.get_data_yahoo(myTicker, myStartDate, myEndDate)
daily_close = myData[['Adj Close']]
returns = daily_close.pct_change()
mdd = max_drawdown(returns)
print("My max drawdown:", mdd)

输出是:

My max drawdown: 0   -0.026101
dtype: float64

我希望输出显示为带 2 位小数的百分比。例如:

My max drawdown: -2.61%

我该怎么做?

【问题讨论】:

  • 试试mdd.iloc[0]
  • 这摆脱了“0”,所以我只有 -0.026101,然后使用 print(f"My max drawdown: {round(myVal*100, 2)}%") 工作跨度>

标签: python pandas printing format yfinance


【解决方案1】:

需要将变量转化为普通的浮点数,例如:

print(f"My max drawdown: {round(float(mdd) * 100, 2)}%")

或者:

print("My max drawdown: {0:.2f}%".format(float(mdd) * 100))

【讨论】:

    【解决方案2】:

    这行得通:

    myVal = mdd.iloc[0]
    print(f"My max drawdown: {round(myVal*100, 2)}%")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-30
      • 2016-03-13
      • 2013-06-08
      • 2014-10-03
      相关资源
      最近更新 更多