Python AttributeError正在运行小写字母转换&;字符串上的标点符号
在包含评论的Pandas数据框上运行lower_case.translate&string.标点符号时,我得到AttributeError。导入的数据很难看。收到的错误为Python AttributeError正在运行小写字母转换&;字符串上的标点符号,python,pandas,nlp,Python,Pandas,Nlp,在包含评论的Pandas数据框上运行lower_case.translate&string.标点符号时,我得到AttributeError。导入的数据很难看。收到的错误为AttributeError:“DataFrame”对象没有属性“translate”完整错误如下 我在评论中尝试了不同的验证 # cleaned_text = lower_case.translate(str.maketrans(string.punctuation, ' '*len(string.punctuation)))
AttributeError:“DataFrame”对象没有属性“translate”
完整错误如下
我在评论中尝试了不同的验证
# cleaned_text = lower_case.translate(str.maketrans(string.punctuation, ' '*len(string.punctuation)))
# cleaned_text = lower_case.translator = str.maketrans('', '', string.punctuation)
cleaned_text = lower_case.translate(str.maketrans('', '', string.punctuation))
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-78-9f23b8a5e8e0> in <module>
2 # cleaned_text = lower_case.translator = str.maketrans('', '', string.punctuation)
3
----> 4 cleaned_text = lower_case.translate(str.maketrans('', '', string.punctuation))
~\anaconda3\envs\nlp_course\lib\site-packages\pandas\core\generic.py in __getattr__(self, name)
5272 if self._info_axis._can_hold_identifiers_and_holds_name(name):
5273 return self[name]
-> 5274 return object.__getattribute__(self, name)
5275
5276 def __setattr__(self, name: str, value) -> None:
AttributeError: 'DataFrame' object has no attribute 'translate'
我也尝试了这个,并在上面添加了一个fillna,希望能够修复它。
#checking for nulls if present any
print("Number of rows with null values:")
print(lower_case.isnull().sum().sum())
lower_case.fillna("")
a[小样本excel][2]
用于数据框
代码
收到的错误为
# cleaned_text = lower_case.translate(str.maketrans(string.punctuation, ' '*len(string.punctuation)))
# cleaned_text = lower_case.translator = str.maketrans('', '', string.punctuation)
cleaned_text = lower_case.translate(str.maketrans('', '', string.punctuation))
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-78-9f23b8a5e8e0> in <module>
2 # cleaned_text = lower_case.translator = str.maketrans('', '', string.punctuation)
3
----> 4 cleaned_text = lower_case.translate(str.maketrans('', '', string.punctuation))
~\anaconda3\envs\nlp_course\lib\site-packages\pandas\core\generic.py in __getattr__(self, name)
5272 if self._info_axis._can_hold_identifiers_and_holds_name(name):
5273 return self[name]
-> 5274 return object.__getattribute__(self, name)
5275
5276 def __setattr__(self, name: str, value) -> None:
AttributeError: 'DataFrame' object has no attribute 'translate'
---------------------------------------------------------------------------
AttributeError回溯(最近一次呼叫上次)
在里面
2#干净的#text=lower#u case.translator=str.maketrans(“”,,,string.标点符号)
3.
---->4.text=小写字母.translate(str.maketrans(“”,,,string.标点符号))
~\anaconda3\envs\nlp\u course\lib\site packages\pandas\core\generic.py in\uuuuuuuu getattr\uuuuu(self,name)
5272如果自身信息轴可容纳标识符且容纳名称(名称):
5273返回自我[姓名]
->5274返回对象。\uuuu getattribute\uuu74(self,name)
5275
5276定义设置属性(self,名称:str,值)->无:
AttributeError:“DataFrame”对象没有属性“translate”
熊猫数据帧没有.translate()
方法,但是Python字符串有。例如:
导入字符串
my_str=“你好,世界!”
my_str.translate(str.maketrans('','',string.标点))
如果要将该转换应用于数据帧行中的每个列值,可以在列上使用.map()
。.map()
方法采用一个接受列值作为参数的函数,您可以返回转换后的值:
def删除标点符号(值):
返回值.translate(str.maketrans('','',字符串.标点符号))
df[“我的脏列”]=df[“我的脏列”].map(删除标点)
也可以使用lambda函数,而不是定义新函数:
df[“我的脏列”]=df[“我的脏列”].map(
lambda x:x.translate(str.maketrans(“”,,,字符串,标点符号))
)
如果有许多列需要应用此功能,可以执行以下操作:
df.columns中列名称的:
df[column\u name]=df[column\u name].map(
lambda x:x.translate(str.maketrans(“”,,,字符串,标点符号))
)
如果每个df[“my\u dirty\u column”]都有一个唯一的名称,有没有办法?我可以一个接一个地做,但真正的数据帧将有数百个唯一的列。很酷,谢谢,这就解释了为什么它最初可以工作。我使用了一些python字符串来测试一个小数据。您可以像这样浏览以下列:查找df.columns中的column\u name:…
。这有帮助吗?我有点理解,它会像小写['columns']=小写['columns'].df中列名称的映射(删除标点符号)。columns:但我必须在这方面做一些新的尝试,并回顾iter