Whetting Your Appetite (Jupyter Notebook)

[1]:
import pandas as pd
[2]:
data = pd.read_csv('txns.csv', encoding='iso8859-1', delimiter=';',
            names=['account', 'info', 'time_booked', 'time_valuta', 'amount', 'unit'])
[3]:
data
[3]:
account info time_booked time_valuta amount unit
0 AT66666666666666 Bezahlung Karte M... 01.03.2023 28.02.2023 -7,40 EUR
1 AT66666666666666 95111243 F... 28.02.2023 28.02.2023 -29,90 EUR
2 AT66666666666666 Abbuchung Onlinebanking B... 28.02.2023 28.02.2023 -1.100,00 EUR
3 AT66666666666666 Gutschrift Onlinebanking B... 28.02.2023 28.02.2023 +1.100,00 EUR
4 AT66666666666666 Bezahlung Karte M... 28.02.2023 27.02.2023 -17,50 EUR
... ... ... ... ... ... ...
108 AT66666666666666 Bezahlung Karte M... 02.01.2023 02.01.2023 -40,99 EUR
109 AT66666666666666 Abbuchung Onlinebanking 000000144919 F... 02.01.2023 02.01.2023 -284,40 EUR
110 AT66666666666666 339099446722187 B... 02.01.2023 02.01.2023 -62,76 EUR
111 AT66666666666666 Abbuchung Onlinebanking B... 02.01.2023 02.01.2023 -400,00 EUR
112 AT66666666666666 Gutschrift Onlinebanking B... 02.01.2023 02.01.2023 +2.000,00 EUR

113 rows × 6 columns

[4]:
info = data['info']
[5]:
type(info)
[5]:
pandas.core.series.Series
[6]:
x = info.str.startswith('Bezahlung Karte')
[27]:
data['card_payment'] = x
[29]:
data
[29]:
account info time_booked time_valuta amount unit card_payment
0 AT66666666666666 Bezahlung Karte M... 01.03.2023 28.02.2023 -7,40 EUR True
1 AT66666666666666 95111243 F... 28.02.2023 28.02.2023 -29,90 EUR False
2 AT66666666666666 Abbuchung Onlinebanking B... 28.02.2023 28.02.2023 -1.100,00 EUR False
3 AT66666666666666 Gutschrift Onlinebanking B... 28.02.2023 28.02.2023 +1.100,00 EUR False
4 AT66666666666666 Bezahlung Karte M... 28.02.2023 27.02.2023 -17,50 EUR True
... ... ... ... ... ... ... ...
108 AT66666666666666 Bezahlung Karte M... 02.01.2023 02.01.2023 -40,99 EUR True
109 AT66666666666666 Abbuchung Onlinebanking 000000144919 F... 02.01.2023 02.01.2023 -284,40 EUR False
110 AT66666666666666 339099446722187 B... 02.01.2023 02.01.2023 -62,76 EUR False
111 AT66666666666666 Abbuchung Onlinebanking B... 02.01.2023 02.01.2023 -400,00 EUR False
112 AT66666666666666 Gutschrift Onlinebanking B... 02.01.2023 02.01.2023 +2.000,00 EUR False

113 rows × 7 columns

Filter in Pandas

[50]:
filt = data['info'].str.startswith('Bezahlung Karte')
[51]:
filt
[51]:
0       True
1      False
2      False
3      False
4       True
       ...
108     True
109    False
110    False
111    False
112    False
Name: info, Length: 113, dtype: bool
[53]:
data.loc[~filt]
[53]:
account info time_booked time_valuta amount unit card_payment
1 AT66666666666666 95111243 F... 28.02.2023 28.02.2023 -29,90 EUR False
2 AT66666666666666 Abbuchung Onlinebanking B... 28.02.2023 28.02.2023 -1.100,00 EUR False
3 AT66666666666666 Gutschrift Onlinebanking B... 28.02.2023 28.02.2023 +1.100,00 EUR False
5 AT66666666666666 9325008697 F... 27.02.2023 27.02.2023 -29,00 EUR False
8 AT66666666666666 Abbuchung Onlinebanking B... 27.02.2023 27.02.2023 -70,00 EUR False
9 AT66666666666666 Gutschrift Onlinebanking B... 27.02.2023 27.02.2023 +2.000,00 EUR False
12 AT66666666666666 Abbuchung Onlinebanking F... 23.02.2023 23.02.2023 -2.801,80 EUR False
14 AT66666666666666 A1 RECHNUNG 02/23 339099446790254|OG/00... 23.02.2023 23.02.2023 -72,88 EUR False
17 AT66666666666666 Abbuchung Onlinebanking B... 21.02.2023 21.02.2023 -2.801,80 EUR False
18 AT66666666666666 Gutschrift Onlinebanking B... 21.02.2023 21.02.2023 +2.801,80 EUR False
19 AT66666666666666 Gutschrift Onlinebanking B... 21.02.2023 21.02.2023 +2.801,80 EUR False
20 AT66666666666666 Abbuchung Onlinebanking 237811001182 F... 21.02.2023 21.02.2023 -79,00 EUR False
21 AT66666666666666 Abbuchung Onlinebanking F... 21.02.2023 21.02.2023 -158,47 EUR False
22 AT66666666666666 Gutschrift Onlinebanking B... 21.02.2023 21.02.2023 +200,00 EUR False
23 AT66666666666666 Abbuchung Onlinebanking B... 21.02.2023 21.02.2023 -450,00 EUR False
24 AT66666666666666 Gutschrift Onlinebanking B... 21.02.2023 21.02.2023 +450,00 EUR False
25 AT66666666666666 Gutschrift Onlinebanking B... 21.02.2023 21.02.2023 +200,00 EUR False
32 AT66666666666666 Auszahlung Karte B... 07.02.2023 07.02.2023 -100,00 EUR False
34 AT66666666666666 200075787001 TZB. 02/23 Anl. 347159Strom 5.17 ... 07.02.2023 07.02.2023 -31,00 EUR False
35 AT66666666666666 Gutschrift Onlinebanking B... 06.02.2023 06.02.2023 +200,00 EUR False
36 AT66666666666666 200004871820 B... 06.02.2023 06.02.2023 -24,00 EUR False
37 AT66666666666666 200004876265 B... 06.02.2023 06.02.2023 -24,00 EUR False
38 AT66666666666666 200004848862 B... 06.02.2023 06.02.2023 -24,00 EUR False
39 AT66666666666666 200004871863 B... 06.02.2023 06.02.2023 -24,00 EUR False
43 AT66666666666666 Abbuchung Dauerauftrag 000000144919 F... 06.02.2023 06.02.2023 -284,40 EUR False
44 AT66666666666666 Auszahlung Karte M... 06.02.2023 05.02.2023 -80,00 EUR False
49 AT66666666666666 QSNNG6XAU A1 Re. 00121672661 4 B... 03.02.2023 03.02.2023 -62,76 EUR False
56 AT66666666666666 120016487112 B... 31.01.2023 31.01.2023 -12,43 EUR False
62 AT66666666666666 Abbuchung Onlinebanking B... 27.01.2023 27.01.2023 -730,00 EUR False
63 AT66666666666666 Gutschrift Onlinebanking B... 27.01.2023 27.01.2023 +2.000,00 EUR False
65 AT66666666666666 BX/000009219|Entgelt für Nichtdurchführung von... 25.01.2023 25.01.2023 -6,90 EUR False
78 AT66666666666666 9325008697 F... 16.01.2023 16.01.2023 -39,00 EUR False
79 AT66666666666666 Abbuchung Onlinebanking F... 16.01.2023 16.01.2023 -19,00 EUR False
80 AT66666666666666 Abbuchung Onlinebanking B... 16.01.2023 16.01.2023 -40,00 EUR False
81 AT66666666666666 Gutschrift Onlinebanking B... 16.01.2023 16.01.2023 +500,00 EUR False
85 AT66666666666666 Auszahlung Karte M... 12.01.2023 11.01.2023 -100,00 EUR False
89 AT66666666666666 032300005522384 V... 09.01.2023 09.01.2023 -8,99 EUR False
95 AT66666666666666 200075787001 TZB. 01/23 Anl. 347159Strom 6.83 ... 05.01.2023 05.01.2023 -41,00 EUR False
96 AT66666666666666 SALDO MESSTECHNIK 602674240071 O... 05.01.2023 05.01.2023 -142,00 EUR False
102 AT66666666666666 Abbuchung Dauerauftrag 000000144919 F... 04.01.2023 04.01.2023 -284,40 EUR False
106 AT66666666666666 0004325259000023 OEAMTC MITGLIEDSCHAFT U. SB 2... 03.01.2023 03.01.2023 -140,60 EUR False
109 AT66666666666666 Abbuchung Onlinebanking 000000144919 F... 02.01.2023 02.01.2023 -284,40 EUR False
110 AT66666666666666 339099446722187 B... 02.01.2023 02.01.2023 -62,76 EUR False
111 AT66666666666666 Abbuchung Onlinebanking B... 02.01.2023 02.01.2023 -400,00 EUR False
112 AT66666666666666 Gutschrift Onlinebanking B... 02.01.2023 02.01.2023 +2.000,00 EUR False

Copy vs Reference

[13]:
l1 = [1,2,3, 'vier']
[14]:
l2 = l1
[15]:
l1.append(5.0)
[16]:
l1
[16]:
[1, 2, 3, 'vier', 5.0]
[19]:
l2
[19]:
[1, 2, 3, 'vier', 5.0]
[20]:
l2.append(6)
l2
[20]:
[1, 2, 3, 'vier', 5.0, 6]
[21]:
l1
[21]:
[1, 2, 3, 'vier', 5.0, 6]

Immutable

[22]:
t1 = (1,2,3, 'vier')
[24]:
type(t1)
[24]:
tuple
[26]:
try:
    t1.append(5)
except Exception as e:
    print(e, type(e))
'tuple' object has no attribute 'append' <class 'AttributeError'>

String

[31]:
s = 'hallo suesser'
[33]:
'hallo' in s
[33]:
True
[35]:
s.endswith('suesser')
[35]:
True

Regex

[36]:
import re
[38]:
re_living = re.compile(r'^(BILLA|REWE)')
[39]:
s = 'BILLA DANKT blah blah'
[55]:
m = re_living.search(s)
[56]:
if m is not None:
    print('living')
living