Получение следующей ошибки при присваивании значения с плавающей точкой массиву: («объект« numpy.float64 »не поддерживает назначение элемента», «произошел в индексе 4») - PullRequest
0 голосов
/ 28 сентября 2019

Я получаю сообщение об ошибке TypeError: («объект« numpy.float64 »не поддерживает назначение элемента», «произошел с индексом 4»), когда я пытаюсь назначить значения элементам в моем массиве numpy последовательно.Значение, которое я пытаюсь присвоить элементу, является float, поэтому я понятия не имею, что происходит.

Моя функция выглядит следующим образом:

def get_next_month_data(data):
    next_month_data = np.zeros(data.shape, dtype=float)
    data = data.values
    row_index = 0

    #SellerAccountID
    next_month_data[row_index] = data[0]
    row_index += 1

    #CurrentBalance
    if data[8] == 1:
        next_month_data = data[1]
    else:
        next_month_data[row_index] = data[1] - (data[8] - data[1] * data[2])
    row_index += 1

    #calculated_rate

    next_month_data[row_index] = data[2]
    row_index += 1

    #contractual_payment_propensity
    next_month_data[row_index] = data[3]
    row_index += 1

    #arrears increase propensity
    next_month_data[row_index] = data[4]
    row_index += 1

    #arrears decrease propensity
    next_month_data[row_index] = data[5]
    row_index += 1

    #Number
    next_month_data[row_index] = data[6]
    row_index += 1

    #pay_amnt
    next_month_data[row_index] = 0
    row_index += 1

    #default flag
    if data[9] < 6 and data[8] != 1:
        next_month_data[row_index] = 0
    else:
        next_month_data[row_index] = 1
    row_index += 1

    #months in arrears
    if data[7] == 0:
        next_month_data[row_index] = data[9] + 1
    elif data[7] == data[10]:
        next_month_data[row_index] = data[9]
    else:
        next_month_data[row_index] = data[9] - 1
    row_index += 1

    #repayment value
    next_month_data[row_index] = data[10]
    row_index += 1

    return next_month_data

Аргумент данных - это пандасерии.Ошибка всегда отображается в строке

next_month_data[row_index] = data[2]

Все элементы в моей серии являются значениями с плавающей точкой.

Пожалуйста, помогите, это так расстраивает.

1 Ответ

1 голос
/ 28 сентября 2019

Может быть виновником являются следующие строки?

if data[8] == 1:
    next_month_data = data[1]

Разве это не должно быть next_month_data[row_index] = data[1]?

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