如何在Python 3中使用str.replace

时间:2018-06-13 09:47:41

标签: python pandas

我正在尝试用数据框列中的字符串替换模式。在Python 2中,这很好用。

df = df['Transaction Description'].str.replace("apple", "pear")

但是在Python 3中它给了我:

TypeError                                 Traceback (most recent call last)
<ipython-input-10-1f1e7cb2faf3> in <module>()
----> 1 df = df['Transaction Description'].str.replace("apple", "pear")

~/.local/lib/python3.5/site-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 

~/.local/lib/python3.5/site-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:

~/.local/lib/python3.5/site-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().
  

在python 3中执行此操作的正确方法是什么?

我在两种情况下都使用pandas 0.23.0。

1 个答案:

答案 0 :(得分:1)

  

这是Python 3.5.2及更低版本中的错误

你的python版本是什么?

Source

  0.23.1节省了一天   @Anush

注意: 你应该先搜索谷歌&#34; TypeError:类型别名不能与isinstance()&#34; 一起使用,你会立即得到答案