Как рассчитать проценты на основе условий и кумулятивно добавить к следующим строкам баланс и процентыPython

Программы на Python
Ответить
Anonymous
 Как рассчитать проценты на основе условий и кумулятивно добавить к следующим строкам баланс и проценты

Сообщение Anonymous »

Я пытаюсь составить сводную таблицу счета на основе сборов и ежемесячных платежей. Условие заключается в том, что всякий раз, когда платеж выплачивается с опозданием более чем на 7 дней (или не выплачивается вообще), происходит расчет процентов на основе этой строки. Это значение процентов затем добавляется к сумме задолженности в следующей строке, что, если оно не очищено, будет влиять на расчет процентов в каждой следующей строке.
Проценты рассчитываются на сумму задолженности после месяца платежа с использованием следующей формулы остатка задолженности x ((0,2/365) x дней в предыдущем месяце). Плата будет взиматься до тех пор, пока баланс не будет полностью погашен.
Набор данных начинается со списка комиссий и списка платежей за этот месяц и со временем будет обновляться. Однако я не могу понять, как заставить эти вычисления применяться построчно.
Сначала я попытался рассчитать остаток задолженности по формуле

Код: Выделить всё

df['balance owed'] = (fees-payments).cumsum()
Если платеж задерживается (через 7 дней) и баланс очищается, вместо этого для расчета процентов будет использоваться предыдущая ежемесячная плата.
Затем для процентов я попробовал использовать сдвиг для заполнения пробелов, однако это работает только с существующими значениями, и причитающийся остаток никогда не обновляется, чтобы включить проценты. Кроме того, я не уверен, что произойдет, если кто-то осуществит несколько платежей в месяц, поскольку я думаю, что это приведет к тому, что для расчета процентов не будет использоваться сдвиг.

Код: Выделить всё

df['Interest'] = np.where((df['Balance owed'] > 200), (df['Balance Owed'].shift(1)*((0.2/365)*df.month.shift(1))), 0)
Начало:



дата
описание
комиссия
платеж
остаток задолженности
проценты
комментарий
месяц




1 января
Плата
200

200


31


3 января
Оплата

200
0


31


1 февраля
Сбор
200

200


28


1 марта
Плата
200

400


31


3 марта
Оплата

200
200


31


1 апреля
Сбор
200

400


30



Окончательный результат:



дата
описание
комиссия
платеж
остаток
проценты
комментарий
месяц




1 января
Плата
200

200


31


3 января
Оплата

200
0


31


1 февраля
Сбор
200

200


28


1 марта
Плата
200

403,07
3,07
Проценты за февраль
31


3 марта
Оплата

200
203.07


31


1 апреля
Плата
200

403,5
3,50
Проценты за март
30


3 апреля
Оплата

403,5
0


30




Подробнее здесь: https://stackoverflow.com/questions/796 ... -following
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»