【发布时间】:2022-01-11 01:39:05
【问题描述】:
我有一个在 Juptyter 笔记本中运行的流程,其中一步,计算基本上可以说明贷款金额是多少,并将其分摊到每天的年份中。因此,假设一笔贷款从“2024-04-01”开始,到“2028-04-01”结束,它将在 2024 年(从 4 月起)和 2028 年(从年初到 4 月)应用部分应计,并且其他年份的全额。
我希望改进的地方是动态生成年度数据,而不是我目前在下面的过程中专门定义每年的方法。我想保留的是将开始/结束的年份定义为会计年度可以与日历年不同。感谢您提供任何意见,如果您看到实现我所写内容的更简单的方法,我将非常感激。
data['2024 Year Start'] = datetime.strptime('2024-01-01', '%Y-%m-%d')
data['2024 Year End'] = datetime.strptime('2024-12-31', '%Y-%m-%d')
data['2024 Days'] = pd.to datetime(data[['2024 Year End'], ['Last Loan Date']].min(axis=1)) - pd.to_datetime(data[['2024 Year Start', 'Loan From Date']].max(axis=1))
data['2024 Days'] = data['2024 Days'].astype('timedelta64[D]')-0
data['2024 Accrual'] = np.where((data['Last Loan Date'] >= data['2024 Year Start'])
& (data['Loan From Date'] < data['2024 Year End']),
data[ 'Daily Accrual'] * data['2024 Days'],
0)
data['2025 Year Start'] = datetime.strptime('2025-01-01', '%Y-%m-%d')
data['2025 Year End'] = datetime.strptime('2025-12-31', '%Y-%m-%d')
data['2025 Days'] = pd.to datetime(data[['2025 Year End'], ['Last Loan Date']].min(axis=1)) - pd.to_datetime(data[['2025 Year Start', 'Loan From Date']].max(axis=1))
data['2025 Days'] = data['2025 Days'].astype('timedelta64[D]')-0
data['2025 Accrual'] = np.where((data['Last Loan Date'] >= data['2025 Year Start'])
& (data['Loan From Date'] < data['2025 Year End']),
data[ 'Daily Accrual'] * data['2025 Days'],
0)
【问题讨论】:
-
“作为会计年度的开始/结束” - 由于有不同的假期等,这不是特定于国家/地区的吗?
标签: python pandas numpy datetime time-series