Ошибка при создании al oop с массивом - PullRequest
0 голосов
/ 21 марта 2020

У меня проблема с запуском al oop. Существует ndarray d со значениями array(['3.0', '2.0', '4.0', '1.0'], dtype=object).

Я хочу создать al oop, в котором значение i (в l oop) становится «3.0», «2.0» ... (значения массива d) и получите соответствующий вывод.

Вот код, который я пытаюсь запустить:

Значение d:

array(['3.0', '2.0', '4.0', '1.0'], dtype=object)

Тип d: numpy .ndarray . Тип d [0] равен str

d = final_data.attribute1.unique()

for i in d:
    d = final_data.attribute1.unique()
    attributes = [1, 2]
    a = final_data[final_data['attribute1'] == i]
    b = a.attribute1.groupby(a.ordered_unordered).count()
    c = a.attribute1.count()
    print('\nthe total number of customers who clicked products with attribute {}, rating {} are: {}'.format(attributes[0], d[0], c))
    print('the number of customers who clicked but didn\'t order products with attribute {}, rating {} are: {}:' .format(attributes[0] ,d[0], b[0]))
    print('the number of customers who clicked and ordered products with attribute {}, rating {} are: {}:' .format(attributes[0] ,d[0], b[1]))
    print(type(i))
    i += 1

, а ошибка l oop равна "

TypeError: can only concatenate str (not "int") to str

Я также попытался преобразовать вывод d как float / int следующим образом:

d = final_data.attribute1.unique().astype(float)

for i in d:
    d = final_data.attribute1.unique()
    attributes = [1, 2]
    a = final_data[final_data['attribute1'] == i]
    b = a.attribute1.groupby(a.ordered_unordered).count()
    c = a.attribute1.count()
    print('\nthe total number of customers who clicked products with attribute {}, rating {} are: {}'.format(attributes[0], d[0], c))
    print('the number of customers who clicked but didn\'t order products with attribute {}, rating {} are: {}:' .format(attributes[0] ,d[0], b[0]))
    print('the number of customers who clicked and ordered products with attribute {}, rating {} are: {}:' .format(attributes[0] ,d[0], b[1]))
    print(type(i))
    i += 1

, тогда ошибка:

KeyError: 0.0
During handling of the above exception, another exception occurred:

, когда я конвертирую 'd' в float или int , он принимает значение 'i' как 0.0 (я не знаю его причину).

1 Ответ

0 голосов
/ 21 марта 2020

Итак, у вас есть:

d = array(['3.0', '2.0', '4.0', '1.0'], dtype=object)

и вы хотите получить доступ к значениям в al oop? Используйте перечислить:

for i,x in enumerate(d):
    print('index:' + str(i))
    print('value:' + str(x))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...