savok = {} with open ('utca.txt', 'rt', encoding='utf-8') as f: a, b, c = f.readline().strip().split(' ') savok['A'] = int(a) savok['B'] = int(b) savok['C'] = int(c)
import pandas as pd import numpy as np cols = ['adoszam', 'utca', 'hazszam', 'sav', 'terulet'] df = pd.read_csv('utca.txt', delimiter = ' ', skiprows = 1, names = cols, index_col = False) df.dtypes
adoszam int64
utca object
hazszam object
sav object
terulet int64
dtype: object
print(f"A mintában {df.shape[0]} telek szerepel.")
A mintában 543 telek szerepel.
def ado(sav, terulet, savok): osszeg = savok[sav] * terulet return 0 if osszeg < 10000 else osszeg
a_szam = int(input("3. feladat. Egy tulajdonos adószáma:")) filt = (df.adoszam == a_szam) if df[filt].shape[0] > 0: print(df[filt]) else: print(f'Nincs {a_szam} adószám az adatbázisban')
adoszam utca hazszam sav terulet ado 542 12345 Zsomboly 20 A 134 107200
df['ado'] = df.apply(lambda x: ado(x.sav, x.terulet, savok), axis=1) df2 = df.groupby('sav')['ado'].agg(['count', 'sum']) df2.rename(columns={'count':'Telkek száma','sum':'Fizetendő adó'}, inplace = True) df2
Telkek száma Fizetendő adó sav A 165 20805600 B 144 13107000 C 234 3479600
a = set(df[df.sav=='A']['utca']) b = set(df[df.sav=='B']['utca']) c = set(df[df.sav=='C']['utca']) ab = a.intersection(b) ac = a.intersection(c) bc = b.intersection(c) ab |= ac ab |= bc for utca in ab: print(utca)
Besztercei Rezeda Gyurgyalag Szepesi Icce Kurta
df2 = df.groupby('adoszam').sum()['ado'] df2.to_csv('fizetendo.css', sep=' ', header=False) df2
adoszam 10388 22000 10495 72000 10507 126000 10843 11600 10934 14400 ... 98489 84000 98769 72000 98791 113400 99795 0 99986 151800 Name: ado, Length: 519, dtype: int64