我目前正在尝试建立一个几乎完全基于 Python 的 RMarkdown 文档。我有几个这个设置的运行示例,但我最近的工作似乎无法编织,尽管当我运行所有块时代码运行流畅。
从错误消息来看,我认为这与我导入 pandas-datareader 有关系,但我不知道为什么会这样,因为我确实安装了最新版本并且我已经检查过我使用的是正确的环境.该错误似乎与前几行有关,我在其中导入了包,因此我将为您节省整个文档。
请参阅下面相关的前几个代码块:
---
title: "ABC"
runningheader: "ABC" # only for pdf output
subtitle: "ABC" # only for html output
output: html_document
author: "Jan Felix"
abstract: "An RMarkdown document with all the relevant python packages."
date: "`r format(Sys.time(), '%B %d, %Y')`"
---
library(reticulate)
library(knitr)
knitr::opts_chunk$set(message = FALSE, echo = FALSE, warning = FALSE, error = FALSE)
import numpy as np
import pandas as pd
pd.options.mode.chained_assignment = None
import matplotlib.pyplot as plt
import pandas_datareader as pdr
import os
import datetime
os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = 'C:/Users/janfe/Anaconda3/Library/plugins/platforms'
np.random.seed(seed=1994)
Quitting from lines 18-27 (Pyfi.Rmd)
Error in py_call_impl(callable, dots$args, dots$keywords) :
ImportError: cannot import name 'StringIO'
Detailed traceback:
File "<string>", line 1, in <module>
File "C:\Users\janfe\Documents\R\win-library\4.0\reticulate\python\rpytools\loader.py", line 24, in _import_hook
level=level
File "C:\Users\janfe\ANACON~1\lib\site-packages\pandas_datareader\__init__.py", line 2, in <module>
from .data import (DataReader, Options, get_components_yahoo,
File "C:\Users\janfe\Documents\R\win-library\4.0\reticulate\python\rpytools\loader.py", line 24, in _import_hook
level=level
File "C:\Users\janfe\ANACON~1\lib\site-packages\pandas_datareader\data.py", line 7, in <module>
from pandas_datareader.av.forex import AVForexReader
File "C:\Users\janfe\Documents\R\win-library\4.0\reticulate\python\rpytools\loader.py", line 24, in _import_hook
level=level
File "C:\Users\janfe\ANACON~1\lib\site-packages\pandas_datareader\av\__init__.py", line 3, in <module>
from pandas_datareader.base import _BaseReader
File "C:\Us
Calls: <Anonymous> ... py_capture_output -> force -> <Anonymous> -> py_call_impl
非常感谢任何帮助!如果有任何进一步的信息会有所帮助,请告诉我。
编辑:我刚刚确认,如果我注释掉以下几行并将数据作为 CSV 加载,则不会发生此错误,如下所示:
#import pandas_datareader as pdr
#fred = pdr.DataReader(symbols, 'fred', start, end)
#fred.to_csv("fred.csv")
fred = pd.read_csv("fred.csv", index_col = "DATE")
fred.index = pd.DatetimeIndex(fred.index)
这显然不是我问题的答案,但它缩小了可能性。在要编织的文档中调用 pandas-datareader 似乎不起作用...