如何解决Mypy运行速度非常慢在 Pandas 系列方法上引发错误
考虑以下代码:
import pandas as pd
def calc_mard(x: pd.Series,y: pd.Series) -> float:
x_at_y_timestamps: pd.Series = x[y.index]
error: pd.Series = y - x_at_y_timestamps
mard: float = 100.0 * (error.abs() / x).mean()
return mard
从 mac 终端命令行对包含此代码的文件运行 mypy 大约需要 40 秒。这是正常的吗?发现以下错误:
xxx.py:8: error: "Series[Any]" has no attribute "abs"
Found 1 error in 1 file (checked 1 source file)
我经常收到错误抱怨熊猫系列方法。这里发生了什么?代码肯定会运行并产生预期的结果。
解决方法
据我所知,截至目前,pandas 没有打字存根。
例如,当我尝试在下面的脚本上运行 mypy
时出现以下错误。
import pandas as pd
def compute(ser1: pd.Series,ser2: pd.Series) -> float:
return 100.0 * (ser1.abs() / ser2).mean()
if __name__ == '__main__':
ser1: pd.Series = pd.Series([1,2,3])
ser2: pd.Series = pd.Series([3,4,5])
result = compute(ser1,ser2)
print(result)
pandas_typing.py:1: error: Skipping analyzing 'pandas': found module but no type hints or library stubs
pandas_typing.py:1: note: See https://mypy.readthedocs.io/en/latest/running_mypy.html#missing-imports
Found 1 error in 1 file (checked 1 source file)
我想你已经安装了 data-science-types
包,它为 Pandas 提供了类型存根。
安装后,我确实遇到了同样的错误。
pandas_typing.py:5: error: "Series[Any]" has no attribute "abs"
Found 1 error in 1 file (checked 1 source file)
我查看了代码并注意到确实没有 abs
的方法 Series
:
https://github.com/predictive-analytics-lab/data-science-types/blob/master/pandas-stubs/core/series.pyi
您可能想在此处提交有关丢失的打字存根的问题。 https://github.com/predictive-analytics-lab/data-science-types/issues
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。