Skip to content

Commit 6edf45a

Browse files
committed
Updated car loan to have shorter variable names
1 parent 5db8951 commit 6edf45a

File tree

2 files changed

+163
-185
lines changed

2 files changed

+163
-185
lines changed

Finance/.ipynb_checkpoints/car_loans-checkpoint.ipynb

Lines changed: 67 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -33,42 +33,29 @@
3333
{
3434
"cell_type": "code",
3535
"execution_count": 2,
36-
"metadata": {
37-
"collapsed": true
38-
},
39-
"outputs": [],
40-
"source": [
41-
"# California sales tax 7.5%\n",
42-
"P = 31115 * (1.075)\n",
43-
"\n",
44-
"r = 0.0702 / 12\n",
45-
"n = 60"
46-
]
47-
},
48-
{
49-
"cell_type": "code",
50-
"execution_count": 3,
5136
"metadata": {
5237
"collapsed": false
5338
},
5439
"outputs": [
5540
{
5641
"data": {
5742
"text/plain": [
58-
"662.638532377825"
43+
"662.64"
5944
]
6045
},
61-
"execution_count": 3,
46+
"execution_count": 2,
6247
"metadata": {},
6348
"output_type": "execute_result"
6449
}
6550
],
6651
"source": [
52+
"P = 31115 * (1.075)\n",
53+
"r = 0.0702 / 12\n",
54+
"n = 60\n",
6755
"numerator = (r *((1 + r)**(n)) )\n",
6856
"denominator = ((1 + r)**(n)) - 1\n",
69-
"\n",
7057
"emi = P * (numerator / denominator)\n",
71-
"emi"
58+
"np.round(emi,2)"
7259
]
7360
},
7461
{
@@ -80,37 +67,35 @@
8067
},
8168
{
8269
"cell_type": "code",
83-
"execution_count": 4,
70+
"execution_count": 3,
8471
"metadata": {
85-
"collapsed": true
72+
"collapsed": false
8673
},
87-
"outputs": [],
74+
"outputs": [
75+
{
76+
"data": {
77+
"text/plain": [
78+
"687.23"
79+
]
80+
},
81+
"execution_count": 3,
82+
"metadata": {},
83+
"output_type": "execute_result"
84+
}
85+
],
8886
"source": [
89-
"# Price + Tax + Emissions + Registration + Plate + Documentation\n",
9087
"P = 31115 + (32615 * 0.0975) + 50 + 200 + 65 + 80\n",
91-
"\n",
9288
"r = 0.0702 / 12\n",
93-
"n = 60"
94-
]
95-
},
96-
{
97-
"cell_type": "code",
98-
"execution_count": 5,
99-
"metadata": {
100-
"collapsed": false
101-
},
102-
"outputs": [],
103-
"source": [
89+
"n = 60\n",
10490
"numerator = (r *((1 + r)**(n)) )\n",
10591
"denominator = ((1 + r)**(n)) - 1\n",
106-
"\n",
10792
"emi = P * (numerator / denominator)\n",
108-
"emi = np.round(emi, 2)"
93+
"np.round(emi,2)"
10994
]
11095
},
11196
{
11297
"cell_type": "code",
113-
"execution_count": 6,
98+
"execution_count": 4,
11499
"metadata": {
115100
"collapsed": false
116101
},
@@ -121,7 +106,7 @@
121106
"'The Monthly Payment with fees included is 24.59 higher'"
122107
]
123108
},
124-
"execution_count": 6,
109+
"execution_count": 4,
125110
"metadata": {},
126111
"output_type": "execute_result"
127112
}
@@ -155,7 +140,7 @@
155140
},
156141
{
157142
"cell_type": "code",
158-
"execution_count": 7,
143+
"execution_count": 5,
159144
"metadata": {
160145
"collapsed": false
161146
},
@@ -166,7 +151,7 @@
166151
"202.93628062500002"
167152
]
168153
},
169-
"execution_count": 7,
154+
"execution_count": 5,
170155
"metadata": {},
171156
"output_type": "execute_result"
172157
}
@@ -188,7 +173,7 @@
188173
},
189174
{
190175
"cell_type": "code",
191-
"execution_count": 8,
176+
"execution_count": 6,
192177
"metadata": {
193178
"collapsed": false
194179
},
@@ -199,7 +184,7 @@
199184
"34205.6725"
200185
]
201186
},
202-
"execution_count": 8,
187+
"execution_count": 6,
203188
"metadata": {},
204189
"output_type": "execute_result"
205190
}
@@ -217,7 +202,7 @@
217202
},
218203
{
219204
"cell_type": "code",
220-
"execution_count": 9,
205+
"execution_count": 7,
221206
"metadata": {
222207
"collapsed": false
223208
},
@@ -229,46 +214,34 @@
229214
"term = 60\n",
230215
"P = 34689.96\n",
231216
"\n",
232-
"def calc_interest(P, emi, interest_rate = 0.0702):\n",
233-
" \n",
234-
" # Assuming no fractional interst on a loan \n",
235-
" interest_paid = np.floor( ((interest_rate / 12) * P ) * 100) / 100\n",
236-
" \n",
237-
" principal_paid = np.round(emi - interest_paid, 2)\n",
238-
" \n",
217+
"def calc_interest(P,emi,interest_rate = 0.0702):\n",
218+
" interest_paid = np.floor(((interest_rate/12)*P)*100)/100\n",
219+
" principal_paid = np.round(emi-interest_paid, 2)\n",
239220
" new_balance = np.round(P - principal_paid,2)\n",
240-
" \n",
241221
" return(emi, interest_paid, principal_paid, new_balance)\n",
242222
"\n",
243223
"payment_list = []\n",
244-
"for month in range(1, term + 1):\n",
245-
"\n",
246-
" emi, interest_paid, principal_paid, new_balance = calc_interest(P, emi)\n",
247-
"\n",
248-
" payment_list.append([month, P, emi, interest_paid, principal_paid, new_balance])\n",
249-
"\n",
250-
" P = np.round(new_balance,2)"
224+
"for n in range(1, term + 1):\n",
225+
" emi,i_paid,p_paid,new_p = calc_interest(P, emi)\n",
226+
" payment_list.append([n, P, emi, i_paid, p_paid, new_p])\n",
227+
" P = np.round(new_p,2)"
251228
]
252229
},
253230
{
254231
"cell_type": "code",
255-
"execution_count": 10,
232+
"execution_count": 8,
256233
"metadata": {
257234
"collapsed": false
258235
},
259236
"outputs": [],
260237
"source": [
261-
"payment_table = pd.DataFrame(payment_list, columns = ['Month',\n",
262-
" 'Starting Balance',\n",
263-
" 'Repayment',\n",
264-
" 'Interest Paid',\n",
265-
" 'Principal Paid',\n",
266-
" 'New Balance'])"
238+
"c_names = ['Month','Starting Balance','Repayment','Interest Paid','Principal Paid','New Balance']\n",
239+
"payment_table = pd.DataFrame(payment_list, columns = c_names)"
267240
]
268241
},
269242
{
270243
"cell_type": "code",
271-
"execution_count": 11,
244+
"execution_count": 9,
272245
"metadata": {
273246
"collapsed": false
274247
},
@@ -307,7 +280,7 @@
307280
" <th>0</th>\n",
308281
" <td>1</td>\n",
309282
" <td>34689.96</td>\n",
310-
" <td>687.23</td>\n",
283+
" <td>687.230218</td>\n",
311284
" <td>202.93</td>\n",
312285
" <td>484.30</td>\n",
313286
" <td>34205.66</td>\n",
@@ -316,7 +289,7 @@
316289
" <th>1</th>\n",
317290
" <td>2</td>\n",
318291
" <td>34205.66</td>\n",
319-
" <td>687.23</td>\n",
292+
" <td>687.230218</td>\n",
320293
" <td>200.10</td>\n",
321294
" <td>487.13</td>\n",
322295
" <td>33718.53</td>\n",
@@ -325,7 +298,7 @@
325298
" <th>2</th>\n",
326299
" <td>3</td>\n",
327300
" <td>33718.53</td>\n",
328-
" <td>687.23</td>\n",
301+
" <td>687.230218</td>\n",
329302
" <td>197.25</td>\n",
330303
" <td>489.98</td>\n",
331304
" <td>33228.55</td>\n",
@@ -334,7 +307,7 @@
334307
" <th>3</th>\n",
335308
" <td>4</td>\n",
336309
" <td>33228.55</td>\n",
337-
" <td>687.23</td>\n",
310+
" <td>687.230218</td>\n",
338311
" <td>194.38</td>\n",
339312
" <td>492.85</td>\n",
340313
" <td>32735.70</td>\n",
@@ -343,7 +316,7 @@
343316
" <th>4</th>\n",
344317
" <td>5</td>\n",
345318
" <td>32735.70</td>\n",
346-
" <td>687.23</td>\n",
319+
" <td>687.230218</td>\n",
347320
" <td>191.50</td>\n",
348321
" <td>495.73</td>\n",
349322
" <td>32239.97</td>\n",
@@ -352,7 +325,7 @@
352325
" <th>5</th>\n",
353326
" <td>6</td>\n",
354327
" <td>32239.97</td>\n",
355-
" <td>687.23</td>\n",
328+
" <td>687.230218</td>\n",
356329
" <td>188.60</td>\n",
357330
" <td>498.63</td>\n",
358331
" <td>31741.34</td>\n",
@@ -361,7 +334,7 @@
361334
" <th>6</th>\n",
362335
" <td>7</td>\n",
363336
" <td>31741.34</td>\n",
364-
" <td>687.23</td>\n",
337+
" <td>687.230218</td>\n",
365338
" <td>185.68</td>\n",
366339
" <td>501.55</td>\n",
367340
" <td>31239.79</td>\n",
@@ -370,7 +343,7 @@
370343
" <th>7</th>\n",
371344
" <td>8</td>\n",
372345
" <td>31239.79</td>\n",
373-
" <td>687.23</td>\n",
346+
" <td>687.230218</td>\n",
374347
" <td>182.75</td>\n",
375348
" <td>504.48</td>\n",
376349
" <td>30735.31</td>\n",
@@ -379,7 +352,7 @@
379352
" <th>8</th>\n",
380353
" <td>9</td>\n",
381354
" <td>30735.31</td>\n",
382-
" <td>687.23</td>\n",
355+
" <td>687.230218</td>\n",
383356
" <td>179.80</td>\n",
384357
" <td>507.43</td>\n",
385358
" <td>30227.88</td>\n",
@@ -388,7 +361,7 @@
388361
" <th>9</th>\n",
389362
" <td>10</td>\n",
390363
" <td>30227.88</td>\n",
391-
" <td>687.23</td>\n",
364+
" <td>687.230218</td>\n",
392365
" <td>176.83</td>\n",
393366
" <td>510.40</td>\n",
394367
" <td>29717.48</td>\n",
@@ -398,17 +371,17 @@
398371
"</div>"
399372
],
400373
"text/plain": [
401-
" Month Starting Balance Repayment Interest Paid Principal Paid \\\n",
402-
"0 1 34689.96 687.23 202.93 484.30 \n",
403-
"1 2 34205.66 687.23 200.10 487.13 \n",
404-
"2 3 33718.53 687.23 197.25 489.98 \n",
405-
"3 4 33228.55 687.23 194.38 492.85 \n",
406-
"4 5 32735.70 687.23 191.50 495.73 \n",
407-
"5 6 32239.97 687.23 188.60 498.63 \n",
408-
"6 7 31741.34 687.23 185.68 501.55 \n",
409-
"7 8 31239.79 687.23 182.75 504.48 \n",
410-
"8 9 30735.31 687.23 179.80 507.43 \n",
411-
"9 10 30227.88 687.23 176.83 510.40 \n",
374+
" Month Starting Balance Repayment Interest Paid Principal Paid \\\n",
375+
"0 1 34689.96 687.230218 202.93 484.30 \n",
376+
"1 2 34205.66 687.230218 200.10 487.13 \n",
377+
"2 3 33718.53 687.230218 197.25 489.98 \n",
378+
"3 4 33228.55 687.230218 194.38 492.85 \n",
379+
"4 5 32735.70 687.230218 191.50 495.73 \n",
380+
"5 6 32239.97 687.230218 188.60 498.63 \n",
381+
"6 7 31741.34 687.230218 185.68 501.55 \n",
382+
"7 8 31239.79 687.230218 182.75 504.48 \n",
383+
"8 9 30735.31 687.230218 179.80 507.43 \n",
384+
"9 10 30227.88 687.230218 176.83 510.40 \n",
412385
"\n",
413386
" New Balance \n",
414387
"0 34205.66 \n",
@@ -423,7 +396,7 @@
423396
"9 29717.48 "
424397
]
425398
},
426-
"execution_count": 11,
399+
"execution_count": 9,
427400
"metadata": {},
428401
"output_type": "execute_result"
429402
}
@@ -470,7 +443,7 @@
470443
},
471444
{
472445
"cell_type": "code",
473-
"execution_count": 74,
446+
"execution_count": 13,
474447
"metadata": {
475448
"collapsed": false,
476449
"scrolled": true
@@ -537,7 +510,7 @@
537510
"P = 34689.96\n",
538511
"term = 60\n",
539512
"\n",
540-
"def generate_loan_table(P, term, interest_rate = 0.0702):\n",
513+
"def generate_loan_table(P, term, interest_rate=0.0702):\n",
541514
"\n",
542515
" def calc_emi(P, n, interest_rate):\n",
543516
" r = interest_rate / 12\n",
@@ -557,9 +530,9 @@
557530
" emi = calc_emi(P, term, interest_rate)\n",
558531
" payment_list = []\n",
559532
" \n",
560-
" for month in range(1, term + 1):\n",
561-
" emi, interest_paid, principal_paid, new_balance = calc_interest(P, emi, interest_rate)\n",
562-
" payment_list.append([month, P, emi, interest_paid, principal_paid, new_balance])\n",
533+
" for n in range(1, term + 1):\n",
534+
" emi,i_paid,p_paid, new_p = calc_interest(P, emi, interest_rate)\n",
535+
" payment_list.append([n, P, emi, i_paid, p_paid, new_p])\n",
563536
" P = np.round(new_balance,2)\n",
564537
" \n",
565538
" payment_table = pd.DataFrame(payment_list, columns = ['Month',\n",

0 commit comments

Comments
 (0)