Wan*_*rer 1 string python-3.x pandas
我试图通过执行以下操作从数据框中的列中删除标点符号:
def remove_punctuation(text):
return text.translate(table)
df['data'] = df['data'].map(lambda x: remove_punctuation(x))
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误:
“float”对象没有属性“translate”
我检查了 col 的 dtype,如下所示:
from pandas.api.types import is_string_dtype
is_string_dtype(df['data'])
Run Code Online (Sandbox Code Playgroud)
并得到以下输出:
真的
我不确定这里出了什么问题?
我还尝试了以下操作:translator = str.maketrans('', '', string.punctuation)
def remove_punctuation(text):
return text.translate(translator)
df['data'] = df['data'].map(lambda x: remove_punctuation(x))
Run Code Online (Sandbox Code Playgroud)
但我仍然遇到同样的错误
小智 5
您的 df['data'] 具有 NaN 元素。type(np.nan)是浮动的。因此,在删除标点符号时,您会收到错误“'float' object has no attribute 'translate'”。要解决此问题,您可以
df['data'] = df.fillna({'data':''})用空字符串填充 NaN 值。一旦处理完 pandas Series 中的 NaN 元素,您就可以使用 map 函数删除标点符号。
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
6270 次 |
| 最近记录: |