У меня есть набор данных, импортированный как DataFrame "new_data_words". Существует столбец «page_name», содержащий беспорядочные имена веб-страниц, такие как «%D8%AA%D8%B5%D9%86%D9%8A%D9%81:%D8%A2%D9%84%D9...
», «%D9%85%D9%84%D9%81:IT-Airforce-OR2.png
» или просто «1950
». Я хочу, чтобы создать новый столбец «word_count», чтобы иметь количество слов в названии страницы (слова разделяются «_»)ТипError: объект типа 'float' не имеет len() & TypeError: объект 'float' не итерируется
Вот мои коды:
Для разделения на слова:
b = list(new_data_words['page_name'].str.split('_'))
new_data_words['words'] = b
Я проверил тип Ь список типа и LEN (б) . значение Один образца:
In [1]: new_data_words.loc[0,'words']
Out[2]: ['%D8%AA%D8%B5%D9%86%D9%8A%D9%81:%D8%A2%D9%84%D9%87%D8%A9',
'%D8%A8%D9%84%D8%A7%D8%AF',
'%D8%A7%D9%84%D8%B1%D8%A7%D9%81%D8%AF%D9%8A%D9%86']
Я создал другую колонку «word_count» для подсчета элементов списка в каждой строке столбца «слова». (Придется использовать цикл, чтобы прикоснуться к элементам списка в каждой строке)
Но у меня были ошибки:
x = []
i = []
c = 0
for i in b: # i is list type, with elements are string, I checked
c=c+1
x.append(len(i))
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-12-c0cf0cfbc458> in <module>()
6 #y = str(y)
7 c=c+1
----> 8 x.append(len(i))
TypeError: object of type 'float' has no len()
Я не знаю, почему это тип поплавок .....
Однако, если я только добавить печать, он работал
x = []
i = []
c = 0
for i in b:
c=c+1
print len(i)
x.append(len(i))
3
2
3
2
3
1
8
...
Но с = Len (х) = 68516, гораздо меньше, чем 6 миллионов.
Я пытался заставить элементы, чтобы быть строка снова, произошла другая ошибка:
x = []
for i in b:
for y in i:
y = str(y)
x.append(len(i))
TypeError Traceback (most recent call last)
<ipython-input-164-c86f5f48b80c> in <module>()
1 x = []
2 for i in b:
----> 3 for y in i:
4 y = str(y)
5 x.append(len(i))
TypeError: 'float' object is not iterable
Я думаю, что я это тип списка и итерацию ...
Опять же, если я не добавить, но только печать, он работал:
x = []
for i in b:
for y in i:
y = str(y)
print (len(i))
другой пример: Это работает:
a = []
for i in range(10000):
a.append(len(new_data_words.loc[i,"words"]))
Изменен динамический диапазон, он не работает:
a = []
for i in range(len(b)):
a.append(len(new_data_words.loc[i,"words"]))
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-20-f9d0af3c448f> in <module>()
1 a = []
2 for i in range(len(b)):
----> 3 a.append(len(new_data_words.loc[i,"words"]))
TypeError: object of type 'float' has no len()
Это не работает, либо ......
a = []
for i in range(6035980):
a.append(len(new_data_words.loc[i,"words"]))
Похоже есть некоторые аномальные список. Но я не знаю, что это такое или как его найти.
Кто-нибудь может помочь?
Благодарим за помощь. Это было связано с нулевыми значениями в столбце «Page_value». Несмотря на то, что я передал весь элемент в строку, null будет по-прежнему плавать. –