熊猫DataReader无法正常工作

时间:2020-06-21 23:59:48

标签: pandas dataframe pandas-datareader

我正在尝试从Yahoo Finance导入数据,但是熊猫似乎无法正确读取开始日期和结束日期。 还向我报告了我不理解的熊猫错误

这是我输入的代码:

import numpy as np
import pandas as pd
from pandas_datareader import data as wb
import matplotlib.pyplot as plt

这是屏幕上显示的内容,但我仍然可以使用熊猫

/opt/anaconda3/lib/python3.7/site-packages/pandas_datareader/compat/__init__.py:7: FutureWarning: pandas.util.testing is deprecated. Use the functions in the public API at pandas.testing instead.
  from pandas.util.testing import assert_frame_equal.

然后我运行这段代码

acciones=["PG","BEI.DE"]
datos= pd.DataFrame()
for t in acciones:
    datos[t]=wb.DataReader(t,data_source="yahoo",start=2016-1-1,end=2019-1-1)["Adj Close"]

当我检查输出日期是否延迟两年时,我不知道为什么

datos.tail()

Date        PG             BEI.DE
2016-12-23  76.435783   78.406380
2016-12-27  76.111885   78.726517
2016-12-28  75.635086   78.600410
2016-12-29  75.886978   78.687721
2016-12-30  75.644073   78.192947


datos.head
Date        PG             BEI.DE
2014-01-02  65.854416   68.331200
2014-01-03  65.780823   68.686317
2014-01-06  65.936180   68.405960
2014-01-07  66.573967   68.592857
2014-01-08  65.609123   68.004128

1 个答案:

答案 0 :(得分:0)

您将收到FutureWarning: pandas.util.testing is deprecated的警告,因此您仍然可以运行代码,但将来可能会中断。此问题已解决here

代替使用import语句:from pandas.util.testing import assert_frame_equal改用此语句

from pandas.testing import assert_frame_equal

此外,您还应该使用datetime库创建开始日期和结束日期,以便日期是正确的类型。

import datetime
import pandas as pd
import pandas_datareader.data as wb

start_date = datetime.datetime(2016,1,1)
end_date = datetime.datetime(2019,1,1)
acciones=["PG","BEI.DE"]
datos= pd.DataFrame()
for t in acciones:
    datos[t]=wb.DataReader(t,data_source="yahoo",start=start_date,end=end_date)["Adj Close"]

输出:

>>> datos.head()
                   PG     BEI.DE
Date                            
2016-01-04  68.264992  78.003090
2016-01-05  68.482758  78.849281
2016-01-06  67.820770  78.339645
2016-01-07  67.228455  76.426102
2016-01-08  66.174454  76.233788

>>> datos.tail()
                   PG     BEI.DE
Date                            
2018-12-24  83.908928        NaN
2018-12-26  86.531075        NaN
2018-12-27  88.384834  89.214600
2018-12-28  87.578018  89.805695
2018-12-31  88.288788        NaN