Удалить строки в кадрах данных на основе len (столбцы) - PullRequest
0 голосов
/ 08 ноября 2019

У меня есть 3 кадра данных, которые содержат английские слова, имена и места. Для каждого из фреймов данных я пытаюсь удалить все слова длиной менее 3 и использую следующий код:

english_words=english_words[english_words[0].map(len) >= 3]
names=names[names[0].map(len) >= 3]
places=places[places[0].map(len) >=3]

Все фреймы данных имеют только один столбец. Я ожидаю получить новые фреймы данных только с словами, длина которых больше или равна 3, но вместо этого я получаю следующую ошибку:

TypeError                                 Traceback (most recent call last)
<ipython-input-21-d16d0eaf3a11> in <module>
----> 1 english_words=english_words[[(len(x) > 5) for x in english_words[0]]]
      2 names=names[names[0].map(len) >= 3]
      3 places=places[places[0].map(len) >=3]

<ipython-input-21-d16d0eaf3a11> in <listcomp>(.0)
----> 1 english_words=english_words[[(len(x) > 5) for x in english_words[0]]]
      2 names=names[names[0].map(len) >= 3]
      3 places=places[places[0].map(len) >=3]

TypeError: object of type 'float' has no len()

1 Ответ

0 голосов
/ 08 ноября 2019

Проблема устранена, и это обновленный код:

english_words=english_words[[(len(str(x)) >=3) for x in english_words[0]]]
names=names[[(len(str(x)) >=3) for x in names[0]]]
places=places[[(len(str(x)) >=3) for x in places[0]]]
...