import pandas as pd import numpy as np def wczytaj_dane(): mieszkania = pd.read_csv('mieszkania.csv', encoding='utf-8', sep=',', index_col='Id') return pd.DataFrame(mieszkania) def most_common_room_number (dane): most_common = dane['Rooms'].value_counts().head() return most_common def cheapest_flats(dane, n): cheapest = dane.sort_values('Expected').head(n) return cheapest def find_borough(desc): dzielnice = ['Stare Miasto', 'Wilda', 'Jeżyce', 'Rataje', 'Piątkowo', 'Winogrady', 'Miłostowo', 'Dębiec'] for dzielnica in dzielnice: if dzielnica in desc: return dzielnica return 'Inne' def add_borough(dane): dane['Borough'] = dane['Location'].apply(find_borough) return dane def write_plot(dane, filename): data = add_borough(dane) plot_data = data['Borough'].value_counts() plot_data.plot( Kind = 'bar',title='Mieszkania z podziałem na dzielnice') figure_data = plot_data.get_figure() figure_data.savefig ( filename ) def mean_price(dane, room_number): rooms = dane[ dane['Rooms']==room_number]['Expected'].mean() return rooms def find_13(dane): floor_13 = dane[dane['Floor'] == 13]['Borough'].values return floor_13 def find_best_flats(dane): best_flats = dane[(dane['Borough'] == 'Winogrady') & (dane['Rooms'] == 3) & (dane['Floor'] == 1)] return best_flats def main ( ): dane = wczytaj_dane ( ) print(dane[ :5 ]) print("Najpopularniejsza liczba pokoi w mieszkaniu to: {}".format ( most_common_room_number ( dane ) )) print("{} to najłądniejsza dzielnica w Poznaniu.".format ( find_borough ( "Grunwald i Jeżyce" ) )) print("Średnia cena mieszkania 3-pokojowego, to: {:.2f}".format ( mean_price ( dane , 3 ) )) dane = add_borough(dane) print("Dzielnice z ofertami na 13 pietrze: {}".format ( find_13 ( dane ) )) print("Najlepsze oferty: {}".format ( find_best_flats ( dane ) )) if __name__ == "__main__": main ( )