Python 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)))

在包含评论的Pandas数据框上运行lower_case.translate&string.标点符号时,我得到AttributeError。导入的数据很难看。收到的错误为
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