繁体   English   中英

无法向 Pandas DataFrame 添加值

[英]Unable to add values to a pandas DataFrame

我试图找到几只股票的 MACD(移动平均收敛散度)。我正在使用 Pandas_ta、yfinance 和 pandas 库。 但是当我尝试将 Macd 值添加到数据框时,我收到此错误:

IndexError: iloc cannot enlarge its target object

我的代码是:

import pandas as pd 
import pandas_ta as ta
import yfinance as yf
import datetime as dt
import matplotlib.pyplot as plt
start=dt.datetime.today()-dt.timedelta(365)
end=dt.datetime.today()
zscore=pd.DataFrame()
rsi=pd.DataFrame()
tickers=['2060.SR' , '2160.SR', '3002.SR', '4007.SR', '3005.SR', '3004.SR' , '2150.SR']
macd=pd.DataFrame()
for i in tickers:
  df=pd.DataFrame(yf.download(i, start=start, end=end, interval="1mo"))

  df.columns = map(str.lower, df.columns)    
  macd=df.ta.macd()
  

有人可以让我知道我的错误在哪里以及如何解决这个错误。 谢谢

我不确定哪一行给了你这个错误。

但请注意,在循环中您不是添加数据,而是一次又一次地重写数据:

for i in tickers:
  df=pd.DataFrame(yf.download(i, start=start, end=end, interval="1mo"))

如果要追加,请执行以下操作:

agg_df = pd.DataFrame()
for i in tickers:
  df=pd.DataFrame(yf.download(i, start=start, end=end, interval="1mo"))
  agg_df = agg_df.append(df)

df=df.merge(macd, on="Date")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM