diff --git a/.idea/Python2018.iml b/.idea/Python2018.iml
new file mode 100644
index 0000000..6711606
--- /dev/null
+++ b/.idea/Python2018.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..dcc7426
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..76bd165
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/labs06/README.md b/labs06/README.md
index e35b68f..aa96d78 100644
--- a/labs06/README.md
+++ b/labs06/README.md
@@ -4,15 +4,42 @@
Sprawdź, czy masz zainstalowany pakiet ``pandas``. Jeżeli nie, zainstaluj go.
** zad. 2 (domowe) **
-Jest to zadanie złożone, składające się z kilku części. Całość będzie opierać się o dane zawarte w pliku *mieszkania.csv* i dotyczą cen mieszkań w Poznaniu kilka lat temu.
+Jest to zadanie złożone, składające się z kilku części. Całość będzie opierać się o dane zawarte w pliku
+*mieszkania.csv* i dotyczą cen mieszkań w Poznaniu kilka lat temu.
+
1, Otwórz plik ``task02.py``, który zawiera szkielet kodu, który będziemy rozwijać w tym zadaniu.
- 1. 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.
- 1. 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ą.
- 1. Uzupełnij kod w funkcji ``cheapest_flats(dane, n)``, która wzróci *n* najtańszych ofert mieszkań. Wzrócony obiekt typu ``DataFrame``.
- 1. 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*.
- 1. Dodaj kolumnę ``Borough``, która będzie zawierać informacje o dzielnicach i powstanie z kolumny ``Localization``. Wykorzystaj do tego funkcję ``find_borough``.
- 1. 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.
+
+ 1. 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.
+
+
+ 1. 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ą.
+
+ 1. Uzupełnij kod w funkcji ``cheapest_flats(dane, n)``, która wzróci *n* najtańszych ofert mieszkań.
+ Wzrócony obiekt typu ``DataFrame``.
+
+
+ 1. 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*.
+
+
+ 1. Dodaj kolumnę ``Borough``, która będzie zawierać informacje o dzielnicach i powstanie z kolumny ``Localization``.
+ Wykorzystaj do tego funkcję ``find_borough``.
+
+
+ 1. 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.
+
+
1. Napisz funkcje ``mean_price``, która zwróci średnią cenę mieszkania ``room_numer``-pokojowego.
+
+
1. Uzupełnij funkcje ``find_13``, która zwróci listę dzielnic, które zawierają ofertę mieszkanie na 13 piętrze.
- 1. 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.
+
+ 1. 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.
+
1. *(dodatkowe)*: Korzystając z pakietu *sklearn* zbuduj model regresji liniowej, która będzie wyznaczać cenę mieszkania na podstawie wielkości mieszkania i liczby pokoi.
diff --git a/labs06/task02.py b/labs06/task02.py
index 9d96016..909cb14 100755
--- a/labs06/task02.py
+++ b/labs06/task02.py
@@ -1,14 +1,21 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
+import pandas as pd
+import matplotlib.pyplot as plt
+import numpy as np
def wczytaj_dane():
- pass
+ mieszkania = pd.read_csv('mieszkania.csv',
+ sep=',',
+ encoding='UTF-8',
+ usecols=[0,1,2,3,4,5,6])
+ return mieszkania
def most_common_room_number(dane):
- pass
+ return dane.mode(numeric_only=True)["Rooms"][0]
def cheapest_flats(dane, n):
- pass
+ return dane.sort_values(by=['Expected'], ascending=False).head(n)
def find_borough(desc):
dzielnice = ['Stare Miasto',
@@ -19,23 +26,29 @@ def find_borough(desc):
'Winogrady',
'Miłostowo',
'Dębiec']
- pass
+ for i in dzielnice:
+ if desc.find(i) + 1:
+ return (i)
+ return ('Inne')
def add_borough(dane):
- pass
+ dane['Borough'] = dane['Location'].apply(find_borough)
+ return (dane)
def write_plot(dane, filename):
- pass
+ bar = dane["Borough"].value_counts().plot(kind="bar", figsize=(6, 6))
+ fig = bar.get_figure()
+ fig.savefig(filename)
def mean_price(dane, room_number):
- pass
+ return dane[dane["Rooms"] == room_number]["Expected"].mean()
def find_13(dane):
- pass
+ return dane[dane["Floor"] == 13]["Borough"].unique()
def find_best_flats(dane):
- pass
+ return dane[(dane["Borough"] == "Winogrady") & (dane["Floor"] == 1) & (dane["Rooms"] == 3)]
def main():
dane = wczytaj_dane()
@@ -44,8 +57,8 @@ def main():
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("{} to najładniejsza dzielnica w Poznaniu."
+ .format(find_borough("Grunwald i Jeżyce")))
print("Średnia cena mieszkania 3-pokojowego, to: {}"
.format(mean_price(dane, 3)))