Python:将列添加到数据框(SettingWithCopyWarning)

时间:2020-05-21 06:51:05

标签: python quandl

这是主要代码:

import yfinance as yf
import quandl
quandl.ApiConfig.api_key = "GpBcUzBe7ZwmgqyGzrjC"

start_date = "1980-12-12"
end_date = "2018-03-27"

data = yf.download('AAPL', start_date, end_date)
data = data[['Adj Close']]
data_2 = quandl.get("WIKI/AAPL")
data_2 = data_2[['Adj. Close']]

future_forecast = int(1)
data['Prediction'] = data[['Adj Close']].shift(-future_forecast)
data_2['Prediction'] = data_2[['Adj. Close']].shift(-future_forecast)

请注意“调整关闭”和“调整”。关闭”来自不同的数据库

我试图从相同数据帧的现有列开始在我的数据帧中创建一个名为['Prediction']的新列,并将其移位x量。

我想使用quandl数据库,但是缺少股票市场数据,所以我改用了yfinance数据库。

但是,即使它们是同一类型,只有quandl的行少了一点,但我仍然仅从yfinance的数据上收到此警告(在这种情况下行的数量无关紧要)。

该错误是一个警告:

SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

我尝试了警告提示:

data.loc[:, 'Prediction'] = data[['Adj Close']].shift(-future_forecast)

但是它给了我同样的警告,但另外:

请参阅文档中的警告:https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy self.obj [key] = _infer_fill_value(value) C:\ Users \ SteveFanegaII \ PycharmProjects \ StockPredictor \ venv \ lib \ site-packages \ pandas \ core \ indexing.py:1048: SettingWithCopyWarning:试图在一个副本上设置一个值 从DataFrame切片。尝试使用.loc [row_indexer,col_indexer] = 值

请参阅文档中的警告: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy self.obj [item_labels [indexer [info_axis]]] =值

我不确定在对quandl(data_2)中的数据使用它时,为什么它不给我任何警告。

同样,本质上,当它们都放在.csv上时,它们的列数相同,而行的差异只有一个。

0 个答案:

没有答案