1
0
Fork 0
Python2017/labs06/task02.py

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 ( )