forked from tdwojak/Python2017
75 lines
2.1 KiB
Python
Executable File
75 lines
2.1 KiB
Python
Executable File
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 ( ) |