TypeError:类型别名不能与 isinstance() 一起使用
Posted
技术标签:
【中文标题】TypeError:类型别名不能与 isinstance() 一起使用【英文标题】:TypeError: Type aliases cannot be used with isinstance() 【发布时间】:2018-11-02 20:10:13 【问题描述】:自从我将 pandas 升级到 0.23.0 后,运行一行以删除空格 df.any_column = df.any_column.str.replace(' ','')
我收到的错误消息如下:
/usr/local/lib/python3.5/dist-packages/pandas/core/strings.py in replace(self, pat, repl, n, case, flags, regex)
2427 def replace(self, pat, repl, n=-1, case=None, flags=0, regex=True):
2428 result = str_replace(self._data, pat, repl, n=n, case=case,
-> 2429 flags=flags, regex=regex)
2430 return self._wrap_result(result)
2431
/usr/local/lib/python3.5/dist-packages/pandas/core/strings.py in str_replace(arr, pat, repl, n, case, flags, regex)
637 raise TypeError("repl must be a string or callable")
638
--> 639 is_compiled_re = is_re(pat)
640 if regex:
641 if is_compiled_re:
/usr/local/lib/python3.5/dist-packages/pandas/core/dtypes/inference.py in is_re(obj)
217 """
218
--> 219 return isinstance(obj, re_type)
220
221
/usr/lib/python3.5/typing.py in __instancecheck__(self, obj)
258
259 def __instancecheck__(self, obj):
--> 260 raise TypeError("Type aliases cannot be used with isinstance().")
261
262 def __subclasscheck__(self, cls):
TypeError: Type aliases cannot be used with isinstance().
我应该如何解决这个问题?
【问题讨论】:
有趣...df.any_column.dtype
是什么?你可以试试df.any_column = df.any_column.astype(str).str.replace(' ','')
吗?
【参考方案1】:
这是 Python 3.5.2 及更低版本中的错误。要么升级你的 python(3.5.4 或更高版本应该可以工作),要么等到下一个 pandas 版本,其中包括修复:https://github.com/pandas-dev/pandas/pull/21098
【讨论】:
谢谢!我通过降级 Pandas 解决了这个问题。 或者,如果您由于某种原因(例如,如果您使用的是 Ubuntu 16.04 LTS)无法轻松升级您的 python,那么您可以在 pandas/compat/__init__.py 中更改此 if 条件 @Aerin,你降级到了哪个 Pandas?以上是关于TypeError:类型别名不能与 isinstance() 一起使用的主要内容,如果未能解决你的问题,请参考以下文章
Pyspark 错误:TypeError:不能将类型 <type 'NoneType'> 视为向量 [重复]
TypeError:不能将序列乘以“str”类型的非整数 - 将两列相乘后
TypeError:不能将序列乘以“float”类型的非整数(python 2.7)