forked from tdwojak/Python2017
task02 (labs06) done
This commit is contained in:
parent
98aac33f0b
commit
8424251b3c
111
labs06/task02.py
111
labs06/task02.py
@ -1,16 +1,45 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
import pandas as pd
|
||||||
|
import numpy as np
|
||||||
|
import matplotlib.pyplot as plt
|
||||||
|
import scipy.stats as stats
|
||||||
|
import sklearn
|
||||||
|
from sklearn import linear_model
|
||||||
|
|
||||||
|
|
||||||
def wczytaj_dane():
|
def wczytaj_dane():
|
||||||
pass
|
"""Napisz funkcje, która wczyta zestaw danych z pliku *mieszkania.csv* i zwróci obiekt typu *DataFrame*.
|
||||||
|
Jeżeli wszystko zostało zrobione poprawnie,powinno się wyśtwietlić 5 pierwszych wierszy."""
|
||||||
|
|
||||||
|
flat_data = pd.read_csv('mieszkania.csv', sep = ',', encoding = 'utf-8')
|
||||||
|
flat_data = pd.DataFrame(flat_data)
|
||||||
|
|
||||||
|
return flat_data
|
||||||
|
|
||||||
def most_common_room_number(dane):
|
def most_common_room_number(dane):
|
||||||
pass
|
"""Uzupełnij funkcję ``most_common_room_number``, która zwróci jaka jest najpopularniejsza liczba pokoi w ogłoszeniach.
|
||||||
|
Funkcji powinna zwrócić liczbę całkowitą."""
|
||||||
|
|
||||||
|
pokoje = dane['Rooms']
|
||||||
|
return(pokoje.value_counts(sort=True).index[0])
|
||||||
|
|
||||||
def cheapest_flats(dane, n):
|
def cheapest_flats(dane, n):
|
||||||
pass
|
"""Uzupełnij kod w funkcji ``cheapest_flats(dane, n)``, która wzróci *n* najtańszych ofert mieszkań.
|
||||||
|
Wzrócony obiekt typu ``DataFrame``"""
|
||||||
|
|
||||||
|
posortowane = dane.sort_values(by='Expected')
|
||||||
|
ceny = posortowane['Expected']
|
||||||
|
return(ceny.head(n).to_frame())
|
||||||
|
|
||||||
|
|
||||||
def find_borough(desc):
|
def find_borough(desc):
|
||||||
|
"""Napisz funkcje ``find_borough(desc)``, która przyjmuje 1 argument typu *string*
|
||||||
|
i zwróci jedną z dzielnic zdefiniowaną w liście ``dzielnice``.
|
||||||
|
Funkcja ma zwrócić pierwszą (wzgledem kolejności) nazwę dzielnicy, która jest zawarta w ``desc``.
|
||||||
|
Jeżeli żadna nazwa nie została odnaleziona, zwróć *Inne*."""
|
||||||
|
|
||||||
dzielnice = ['Stare Miasto',
|
dzielnice = ['Stare Miasto',
|
||||||
'Wilda',
|
'Wilda',
|
||||||
'Jeżyce',
|
'Jeżyce',
|
||||||
@ -19,23 +48,69 @@ def find_borough(desc):
|
|||||||
'Winogrady',
|
'Winogrady',
|
||||||
'Miłostowo',
|
'Miłostowo',
|
||||||
'Dębiec']
|
'Dębiec']
|
||||||
pass
|
for i in dzielnice:
|
||||||
|
if i in desc:
|
||||||
|
return(i)
|
||||||
|
|
||||||
|
return 'Inne'
|
||||||
|
|
||||||
|
|
||||||
def add_borough(dane):
|
def add_borough(dane):
|
||||||
pass
|
"""Dodaj kolumnę ``Borough``, która będzie zawierać informacje o dzielnicach i powstanie z kolumny ``Localization``.
|
||||||
|
Wykorzystaj do tego funkcję ``find_borough``"""
|
||||||
|
|
||||||
|
lokacja= dane['Location']
|
||||||
|
dzielnice = []
|
||||||
|
for rekord in dane['Location']:
|
||||||
|
new_col = find_borough(rekord)
|
||||||
|
dzielnice.append(new_col)
|
||||||
|
|
||||||
|
dane['Borough'] = dzielnice
|
||||||
|
|
||||||
|
|
||||||
def write_plot(dane, filename):
|
def write_plot(dane, filename):
|
||||||
pass
|
"""Uzupełnił funkcje ``write_plot``, która zapisze do pliku ``filename`` wykres słupkowy przedstawiający liczbę ogłoszeń
|
||||||
|
mieszkań z podziałem na dzielnice."""
|
||||||
|
|
||||||
|
add_borough(dane)
|
||||||
|
hist_data = dane['Borough'].value_counts()
|
||||||
|
#plt.figure()
|
||||||
|
|
||||||
|
wyplot = hist_data.plot(kind='bar',alpha=0.5, title="Liczba ogłoszeń mieszkań z podziałem na dzielnice", fontsize=5, figsize=(7, 5))
|
||||||
|
wyplot.set_xlabel("Dzielnice")
|
||||||
|
wyplot.set_ylabel("Liczba ogłoszeń")
|
||||||
|
|
||||||
|
#plt.show()
|
||||||
|
|
||||||
|
fig = wyplot.get_figure()
|
||||||
|
fig.savefig(filename)
|
||||||
|
|
||||||
|
|
||||||
def mean_price(dane, room_number):
|
def mean_price(dane, room_number):
|
||||||
pass
|
"""Napisz funkcje ``mean_price``, która zwróci średnią cenę mieszkania ``room_numer``-pokojowego."""
|
||||||
|
|
||||||
|
pokoj = dane.loc[dane['Rooms'] == room_number]
|
||||||
|
return(pokoj['Expected'].agg('mean'))
|
||||||
|
|
||||||
|
|
||||||
def find_13(dane):
|
def find_13(dane):
|
||||||
pass
|
"""Uzupełnij funkcje ``find_13``, która zwróci listę dzielnic, które zawierają ofertę mieszkanie na 13 piętrze."""
|
||||||
|
|
||||||
|
add_borough(dane)
|
||||||
|
lista13pietra = []
|
||||||
|
finded = dane['Borough'].loc[dane['Floor'] == 13]
|
||||||
|
for j in finded:
|
||||||
|
lista13pietra.append(j)
|
||||||
|
return lista13pietra
|
||||||
|
|
||||||
def find_best_flats(dane):
|
def find_best_flats(dane):
|
||||||
pass
|
"""Napisz funkcje ``find_best_flats``, która zwróci wszystkie ogłoszenia mieszkań, które znajdują się na Winogradach,
|
||||||
|
mają 3 pokoje i są położone na 1 piętrze."""
|
||||||
|
|
||||||
|
add_borough(dane)
|
||||||
|
finded_best = dane.loc[(dane['Floor'] == 1) & (dane['Rooms'] == 3) & (dane['Borough'] == 'Winogrady')]
|
||||||
|
return finded_best
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
dane = wczytaj_dane()
|
dane = wczytaj_dane()
|
||||||
@ -45,10 +120,26 @@ def main():
|
|||||||
.format(most_common_room_number(dane)))
|
.format(most_common_room_number(dane)))
|
||||||
|
|
||||||
print("{} to najłądniejsza dzielnica w Poznaniu."
|
print("{} to najłądniejsza dzielnica w Poznaniu."
|
||||||
.format(find_borough("Grunwald i Jeżyce"))))
|
.format(find_borough("Grunwald i Jeżyce")))
|
||||||
|
|
||||||
print("Średnia cena mieszkania 3-pokojowego, to: {}"
|
print("Średnia cena mieszkania 3-pokojowego, to: {}"
|
||||||
.format(mean_price(dane, 3)))
|
.format(mean_price(dane, 3)))
|
||||||
|
|
||||||
|
find_borough("Grunwald i Jeżyce")
|
||||||
|
|
||||||
|
print(cheapest_flats(dane, 5))
|
||||||
|
|
||||||
|
print(add_borough(dane))
|
||||||
|
|
||||||
|
write_plot(dane, 'liczbaogloszen.png')
|
||||||
|
|
||||||
|
print(mean_price(dane, 7))
|
||||||
|
|
||||||
|
print(find_13(dane))
|
||||||
|
|
||||||
|
print(find_best_flats(dane))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
Loading…
Reference in New Issue
Block a user