1
0
forked from tdwojak/Python2018

Prześlij pliki do 'zadaniedomowe2'

This commit is contained in:
Michał Budny 2018-06-25 16:41:44 +00:00
parent f93f5830e4
commit 80f9066aed
4 changed files with 5154 additions and 0 deletions

18
zadaniedomowe2/README.md Normal file
View File

@ -0,0 +1,18 @@
## Zadania
** zad. 0 **
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.
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 ``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. *(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.

File diff suppressed because it is too large Load Diff

55
zadaniedomowe2/task02.py Normal file
View File

@ -0,0 +1,55 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
def wczytaj_dane():
return pd.read_csv('mieszkania.csv')
def most_common_room_number(dane):
return dane['Rooms'].mode()[0]
def cheapest_flats(dane, n):
return dane.sort_values('Expected', axis=0, ascending=True)[:n]
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)
def write_plot(dane, filename):
# TODO
pass
def mean_price(dane, room_number):
return dane[dane['Rooms'] == room_number]['Expected'].mean()
def find_13(dane):
return dane[dane['Floor'] == 13]['Borough'].unique()
def find_best_flats(dane):
return dane[(dane['Borough'] == 'Winogrady') & (dane['Floor'] == 1) & (dane['Rooms'] == 3)]
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: {}"
.format(mean_price(dane, 3)))

80
zadaniedomowe2/tasks.py Normal file
View File

@ -0,0 +1,80 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
1. Zaimportuj bibliotkę pandas jako pd.
"""
"""
2. Wczytaj zbiór danych `311.csv` do zniennej data.
"""
"""
3. Wyświetl 5 pierwszych wierszy z data.
"""
"""
4. Wyświetl nazwy kolumn.
"""
"""
5. Wyświetl ile nasz zbiór danych ma kolumn i wierszy.
"""
"""
6. Wyświetl kolumnę 'City' z powyższego zbioru danych.
"""
"""
7. Wyświetl jakie wartoścu przyjmuje kolumna 'City'.
"""
"""
8. Wyświetl tabelę rozstawną kolumny City.
"""
"""
9. Wyświetl tylko pierwsze 4 wiersze z wcześniejszego polecenia.
"""
"""
10. Wyświetl, w ilu przypadkach kolumna City zawiera NaN.
"""
"""
11. Wyświetl data.info()
"""
"""
12. Wyświetl tylko kolumny Borough i Agency i tylko 5 ostatnich linii.
"""
"""
13. Wyświetl tylko te dane, dla których wartość z kolumny Agency jest równa
NYPD. Zlicz ile jest takich przykładów.
"""
"""
14. Wyświetl wartość minimalną i maksymalną z kolumny Longitude.
"""
"""
15. Dodaj kolumne diff, która powstanie przez sumowanie kolumn Longitude i Latitude.
"""
"""
16. Wyświetl tablę rozstawną dla kolumny 'Descriptor', dla której Agency jest
równe NYPD.
"""