簡體   English   中英

將 pandas.df.pct_change() output 格式化為百分比時出現 TypeError

[英]TypeError while formatting pandas.df.pct_change() output to percentage

我正在嘗試通過定義 function 從 CSV 文件中以百分比格式計算股票的每日收益。 這是我的代碼:

def daily_ret(ticker):
  return f"{df[ticker].pct_change()*100:.2f}%"

當我調用 function 時,我收到此錯誤:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-40-7122588f1289> in <module>()
----> 1 daily_ret('AAPL')

<ipython-input-39-7dd6285eb14d> in daily_ret(ticker)
      1 def daily_ret(ticker):
----> 2   return f"{df[ticker].pct_change()*100:.2f}%"

TypeError: unsupported format string passed to Series.__format__

我哪里錯了?

f-strings 不能用於格式化這樣的迭代,即使是 Series:

使用map或改為apply

def daily_ret(ticker):
    return (df[ticker].pct_change() * 100).map("{:.2f}%".format)
def daily_ret(ticker):
    return (df[ticker].pct_change() * 100).apply("{:.2f}%".format)

import numpy as np
import pandas as pd

df = pd.DataFrame({'A': np.arange(1, 6)})

print(daily_ret('A'))
0       nan%
1    100.00%
2     50.00%
3     33.33%
4     25.00%
Name: A, dtype: object

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM