Ошибка при удалении пунктуации: у объекта 'float' нет атрибута 'translate' - PullRequest
0 голосов
/ 21 мая 2018

Я пытаюсь удалить знаки препинания из столбца в кадре данных, выполнив следующее:

def remove_punctuation(text):
      return text.translate(table)

df['data'] = df['data'].map(lambda x: remove_punctuation(x))

Но я получаю следующую ошибку:

'float'У объекта нет атрибута 'translate'

Я проверил d-тип столбца, как здесь:

from pandas.api.types import is_string_dtype
is_string_dtype(df['data'])

и получил следующий вывод:

Верно

Я не уверен, что здесь происходит не так?

Я также попробовал следующее: translationator = str.maketrans ('', '', string.punctuation)

def remove_punctuation(text):
      return text.translate(translator)
df['data'] = df['data'].map(lambda x: remove_punctuation(x))

, но я все еще получаю ту же ошибку

1 Ответ

0 голосов
/ 26 ноября 2018

У вашего df ['data'] есть элементы NaN. type(np.nan) float.Следовательно, вы получаете сообщение об ошибке «объект с плавающей точкой не имеет атрибута translate при удалении знаков пунктуации. Чтобы устранить эту проблему, вы можете либо

  1. удалить элементы NaN из df ['data']или
  2. Используйте df['data'] = df.fillna({'data':''}), чтобы заполнить значения NaN пустой строкой.

После того, как вы позаботились об элементах NaN в вашей серии панд, вы можете использовать функцию карты для удалениязнаки препинания.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...