【发布时间】:2021-04-14 09:45:29
【问题描述】:
我正在尝试学习 pandas 来执行一项包括大量处理文本数据的工作,因此我一直在探索可用于处理文本数据的方法。我首先通过尝试在系列上使用 .str.replace() 遇到了这个问题,例如我尝试在使用 pd.Series() 方法构造的系列上使用它,然后我尝试从数据框中提取一列并使用该系列的方法。两次我都收到一个错误,即无法在“PandasArray”对象上调用该方法。我进一步测试了其他一些字符串方法,例如 .str.contains()、.str.startswith()、.str.title() 但收到相同的错误。在重新测试代码以检查我没有在其他地方使用这些名称之前,我关闭了 jupyter notebook 并重新启动了我的计算机。我尝试使用
重新安装熊猫conda install pandas --force--reinstall
但我继续收到错误消息。我检查了使用 1.1.5 的版本
pd.__version__
我不确定它为什么将我的系列解释为“熊猫阵列”。字符串方法对我来说很重要,但我不确定如何解决这个问题。我在家里的个人电脑上使用相同的代码尝试了这些方法,它工作正常,我认为重新安装 pandas 会解决这个问题。这是我多次测试的代码:
import pandas as pd
import numpy as np
testseries = pd.Series(['Foo','Foh',np.nan])
testseries.str.replace(r'Fo','Ba')
testdataframe = pd.DataFrame({'a':['Foo','Foh',np.nan],'b':['Foo','Foh',np.nan]})
testdataframe['a'].str.replace('Fo','Ba')
错误信息:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-11-0067b28206a2> in <module>
----> 1 testdataframe['a'].str.replace('Fo','Ba')
C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\strings\accessor.py in wrapper(self, *args, **kwargs)
99 )
100 raise TypeError(msg)
--> 101 return func(self, *args, **kwargs)
102
103 wrapper.__name__ = func_name
C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\strings\accessor.py in replace(self, pat, repl, n, case, flags, regex)
1310 warnings.warn(msg, FutureWarning, stacklevel=3)
1311 regex = True
-> 1312 result = self._array._str_replace(
1313 pat, repl, n=n, case=case, flags=flags, regex=regex
1314 )
AttributeError: 'PandasArray' object has no attribute '_str_replace'
【问题讨论】:
标签: python-3.x pandas dataframe series