mask_missing 没有在 pandas.core.common 中定义?

mask_missing is not defined in pandas.core.common?

最近我用Anaconda安装了zipline,一起安装的是pandas0.18.1。当我尝试导入 zipline 时,它​​报告以下错误:

C:\Anaconda3\envs\helloworld\lib\site-packages\zipline\utils\munge.py in <module>()

13 # See the License for the specific language governing permissions and

14 # limitations under the License.

---> 15 from pandas.core.common import mask_missing

16 try:

17 from pandas.core.common import backfill_2d, pad_2d

ImportError: cannot import name 'mask_missing'

然后我检查了Pandas pandas.core.common.py 源代码, mask_missing 没有在那里定义。我可以知道我们应该使用哪个版本的 Pandas 吗?


我在网上找到这个:http://nullege.com/codes/show/src%40p%40a%40pandas-0.13.1%40pandas%40core%40generic.py/53/pandas.core.common.mask_missing/python

看来 pandas 0.13 mask_missing 还在。我先把pandas降级到0.13看看能不能解决问题

zipline git 存储库中,您似乎需要 pandas 的 0.16.1,基于此行:https://github.com/quantopian/zipline/blob/master/etc/requirements.txt#L17

回到 pandas 存储库中的那个版本,那个函数确实存在:https://github.com/pydata/pandas/blob/v0.16.1/pandas/core/common.py#L497

这是一个版本兼容性问题。你需要 pandas 0.17.1。 Pandas 0.16.1 不能很好地与 numpy 配合使用。此代码段已确认可在 64 位中运行 windows

conda create --name backtesting python=3.4 zipline=0.9.0 pandas=0.17.1