Compare commits
8 Commits
Author | SHA1 | Date | |
---|---|---|---|
40b2bab584 | |||
5ebfac9efd | |||
32e5230834 | |||
914bffad60 | |||
7ee310eb8f | |||
946c7509d4 | |||
380ef4132f | |||
6bf72c525f |
@ -168,6 +168,7 @@ for i in range(5):# range[5] = [0,1,2,3,4]
|
|||||||
|
|
||||||
for zmienna in lista:
|
for zmienna in lista:
|
||||||
# operacje do wykonania w pętli
|
# operacje do wykonania w pętli
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
# In[ ]:
|
# In[ ]:
|
||||||
|
@ -9,48 +9,64 @@ Zadania wprowadzające do pierwszych ćwiczeń.
|
|||||||
"""
|
"""
|
||||||
Wypisz na ekran swoje imię i nazwisko.
|
Wypisz na ekran swoje imię i nazwisko.
|
||||||
"""
|
"""
|
||||||
|
print('Grzegorz Hermann')
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Oblicz i wypisz na ekran pole koła o promienie 10. Jako PI przyjmij 3.14.
|
Oblicz i wypisz na ekran pole koła o promienie 10. Jako PI przyjmij 3.14.
|
||||||
"""
|
"""
|
||||||
|
print(3.14*10**2)
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Stwórz zmienną pole_kwadratu i przypisz do liczbę: pole kwadratu o boku 3.
|
Stwórz zmienną pole_kwadratu i przypisz do liczbę: pole kwadratu o boku 3.
|
||||||
"""
|
"""
|
||||||
|
pole_kwadratu = 3**2
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Stwórz 3 elementową listę, która zawiera nazwy 3 Twoich ulubionych owoców.
|
Stwórz 3 elementową listę, która zawiera nazwy 3 Twoich ulubionych owoców.
|
||||||
Wynik przypisz do zmiennej `owoce`.
|
Wynik przypisz do zmiennej `owoce`.
|
||||||
"""
|
"""
|
||||||
|
owoce = ['morele','mango','winogrono']
|
||||||
|
print(owoce)
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Dodaj do powyższej listy jako nowy element "pomidor".
|
Dodaj do powyższej listy jako nowy element "pomidor".
|
||||||
"""
|
"""
|
||||||
|
owoce.append('pomidor')
|
||||||
|
print(owoce)
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Usuń z powyższej listy drugi element.
|
Usuń z powyższej listy drugi element.
|
||||||
"""
|
"""
|
||||||
|
owoce.pop(1)
|
||||||
|
print(owoce)
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Rozszerz listę o tablice ['Jabłko', "Gruszka"].
|
Rozszerz listę o tablice ['Jabłko', "Gruszka"].
|
||||||
"""
|
"""
|
||||||
|
owoce.extend(['Jabłko', "Gruszka"])
|
||||||
|
print(owoce)
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Wyświetl listę owoce, ale bez pierwszego i ostatniego elementu.
|
Wyświetl listę owoce, ale bez pierwszego i ostatniego elementu.
|
||||||
"""
|
"""
|
||||||
|
n = len(owoce)
|
||||||
|
print(owoce[1:n-1])
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Wyświetl co trzeci element z listy owoce.
|
Wyświetl co trzeci element z listy owoce.
|
||||||
"""
|
"""
|
||||||
|
print(owoce[::3])
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Stwórz pusty słownik i przypisz go do zmiennej magazyn.
|
Stwórz pusty słownik i przypisz go do zmiennej magazyn.
|
||||||
"""
|
"""
|
||||||
|
slownik = {}
|
||||||
|
magazyn = slownik
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Dodaj do słownika magazyn owoce z listy owoce, tak, aby owoce były kluczami,
|
Dodaj do słownika magazyn owoce z listy owoce, tak, aby owoce były kluczami,
|
||||||
zaś wartościami były równe 5.
|
zaś wartościami były równe 5.
|
||||||
"""
|
"""
|
||||||
|
for o in owoce:
|
||||||
|
magazyn[o] = 5
|
||||||
|
print(magazyn)
|
||||||
|
@ -7,8 +7,7 @@ która zawiera tylko elementy z list o parzystych indeksach.
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
def even_elements(lista):
|
def even_elements(lista):
|
||||||
pass
|
return lista[::2]
|
||||||
|
|
||||||
|
|
||||||
def tests(f):
|
def tests(f):
|
||||||
inputs = [[[1, 2, 3, 4, 5, 6]], [[]], [[41]]]
|
inputs = [[[1, 2, 3, 4, 5, 6]], [[]], [[41]]]
|
||||||
|
@ -6,7 +6,10 @@
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
def days_in_year(days):
|
def days_in_year(days):
|
||||||
pass
|
if ((days%4 == 0) and (days%100 != 0)) or (days%400 == 0):
|
||||||
|
return 366
|
||||||
|
else:
|
||||||
|
return 365
|
||||||
|
|
||||||
def tests(f):
|
def tests(f):
|
||||||
inputs = [[2015], [2012], [1900], [2400], [1977]]
|
inputs = [[2015], [2012], [1900], [2400], [1977]]
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Zad 4. Napisz funkcje oov(text, vocab), która zwraca listę wyrazów
|
Zad 4. Napisz funkcje oov(text, vocab), która zwraca listę wyrazów
|
||||||
(bez duplikatów), które występują w tekście text i nie występują w liście
|
(bez duplikatów), które występują w tekście text i nie występują w liście
|
||||||
@ -11,11 +10,20 @@ litery. (OOV = out of vocabulary) (W pythonie istnieje struktura danych tak
|
|||||||
jak 'set', która przechowuje elementy bez powtórzeń.)
|
jak 'set', która przechowuje elementy bez powtórzeń.)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
def oov(text, vocab):
|
def oov(text, vocab):
|
||||||
pass
|
text_lower = ''
|
||||||
|
vocab_lower = []
|
||||||
|
for i in text:
|
||||||
|
if i.islower():
|
||||||
|
text_lower += i
|
||||||
|
else:
|
||||||
|
text_lower += i.lower()
|
||||||
|
for i in vocab:
|
||||||
|
if i.islower():
|
||||||
|
vocab_lower.append(i)
|
||||||
|
else:
|
||||||
|
vocab_lower.append(i.lower())
|
||||||
|
return sorted(set(text_lower.split()) - set(vocab_lower))
|
||||||
|
|
||||||
def tests(f):
|
def tests(f):
|
||||||
inputs = [("this is a string , which i will use for string testing",
|
inputs = [("this is a string , which i will use for string testing",
|
||||||
|
@ -7,8 +7,10 @@ Jeśli podany argument jest mniejszy od 1 powinna być zwracana wartość 0.
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
def sum_from_one_to_n(n):
|
def sum_from_one_to_n(n):
|
||||||
pass
|
if n >= 1:
|
||||||
|
return sum(range(0,n+1))
|
||||||
|
else:
|
||||||
|
return 0
|
||||||
|
|
||||||
def tests(f):
|
def tests(f):
|
||||||
inputs = [[999], [-100]]
|
inputs = [[999], [-100]]
|
||||||
|
@ -1,16 +1,16 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Napisz funkcję euclidean_distance obliczającą odległość między
|
Napisz funkcję euclidean_distance obliczającą odległość między
|
||||||
dwoma punktami przestrzeni trójwymiarowej. Punkty są dane jako
|
dwoma punktami przestrzeni trójwymiarowej. Punkty są dane jako
|
||||||
trzyelementowe listy liczb zmiennoprzecinkowych.
|
trzyelementowe listy liczb zmiennoprzecinkowych.
|
||||||
np. odległość pomiędzy punktami (0, 0, 0) i (3, 4, 0) jest równa 5.
|
np. odległość pomiędzy punktami (0, 0, 0) i (3, 4, 0) jest równa 5.
|
||||||
"""
|
"""
|
||||||
|
import math as m
|
||||||
|
|
||||||
def euclidean_distance(x, y):
|
def euclidean_distance(x, y):
|
||||||
pass
|
return m.sqrt((x[0] - y[0]) ** 2 + (x[1] - y[1]) ** 2 + (x[2] - y[2]) ** 2)
|
||||||
|
|
||||||
def tests(f):
|
def tests(f):
|
||||||
inputs = [[(2.3, 4.3, -7.5), (2.3, 8.5, -7.5)]]
|
inputs = [[(2.3, 4.3, -7.5), (2.3, 8.5, -7.5)]]
|
||||||
|
@ -10,7 +10,10 @@ ma być zwracany napis "It's not a Big 'No!'".
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
def big_no(n):
|
def big_no(n):
|
||||||
pass
|
if n < 5:
|
||||||
|
return "It's not a Big 'No!'"
|
||||||
|
else:
|
||||||
|
return "N"+"O"*n+"!"
|
||||||
|
|
||||||
def tests(f):
|
def tests(f):
|
||||||
inputs = [[5], [6], [2]]
|
inputs = [[5], [6], [2]]
|
||||||
|
@ -5,8 +5,12 @@
|
|||||||
Napisz funkcję char_sum, która dla zadanego łańcucha zwraca
|
Napisz funkcję char_sum, która dla zadanego łańcucha zwraca
|
||||||
sumę kodów ASCII znaków.
|
sumę kodów ASCII znaków.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def char_sum(text):
|
def char_sum(text):
|
||||||
pass
|
total = 0
|
||||||
|
for letter in str(text):
|
||||||
|
total += ord(letter)
|
||||||
|
return total
|
||||||
|
|
||||||
def tests(f):
|
def tests(f):
|
||||||
inputs = [["this is a string"], ["this is another string"]]
|
inputs = [["this is a string"], ["this is another string"]]
|
||||||
|
@ -7,7 +7,11 @@ przez 3 lub 5 mniejszych niż n.
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
def sum_div35(n):
|
def sum_div35(n):
|
||||||
pass
|
total = 0
|
||||||
|
for i in range(n):
|
||||||
|
if ((i %3 == 0) or (i %5 == 0)):
|
||||||
|
total += i
|
||||||
|
return total
|
||||||
|
|
||||||
def tests(f):
|
def tests(f):
|
||||||
inputs = [[10], [100], [3845]]
|
inputs = [[10], [100], [3845]]
|
||||||
|
@ -7,10 +7,9 @@ na podobnie wyglądające cyfry: 'e' na '3', 'l' na '1', 'o' na '0', 't' na '7'.
|
|||||||
Np. leet('leet') powinno zwrócić '1337'.
|
Np. leet('leet') powinno zwrócić '1337'.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
def leet_speak(text):
|
def leet_speak(text):
|
||||||
pass
|
replace_dict = {ord('e'): '3', ord('l'): '1', ord('o'): '0', ord('t'): '7'}
|
||||||
|
return text.translate(replace_dict)
|
||||||
|
|
||||||
def tests(f):
|
def tests(f):
|
||||||
inputs = [['leet'], ['do not want']]
|
inputs = [['leet'], ['do not want']]
|
||||||
|
@ -1,15 +1,19 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Napisz funkcję pokemon_speak, która zamienia w podanym napisie co drugą literę
|
Napisz funkcję pokemon_speak, która zamienia w podanym napisie co drugą literę
|
||||||
na wielką. Np. pokemon_speak('pokemon') powinno zwrócić 'PoKeMoN'.
|
na wielką. Np. pokemon_speak('pokemon') powinno zwrócić 'PoKeMoN'.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
def pokemon_speak(text):
|
def pokemon_speak(text):
|
||||||
pass
|
word = ''
|
||||||
|
for index, value in enumerate(text):
|
||||||
|
if index %2 == 0 and value.islower():
|
||||||
|
word += value.upper()
|
||||||
|
else:
|
||||||
|
word += value
|
||||||
|
return word
|
||||||
|
|
||||||
|
|
||||||
def tests(f):
|
def tests(f):
|
||||||
|
@ -1,16 +1,19 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Napisz funkcję common_chars(string1, string2), która zwraca alfabetycznie
|
Napisz funkcję common_chars(string1, string2), która zwraca alfabetycznie
|
||||||
uporządkowaną listę wspólnych liter z lańcuchów string1 i string2.
|
uporządkowaną listę wspólnych liter z lańcuchów string1 i string2.
|
||||||
Oba napisy będą składać się wyłacznie z małych liter.
|
Oba napisy będą składać się wyłacznie z małych liter.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def common_chars(string1, string2):
|
import re
|
||||||
pass
|
|
||||||
|
|
||||||
|
def common_chars(string1, string2):
|
||||||
|
a = re.split('[^a-zA-Z]', string1)
|
||||||
|
b = re.split('[^a-zA-Z]', string2)
|
||||||
|
return sorted(set(list(''.join(a))) & set(list(''.join(b))))
|
||||||
|
#return sorted(set(list(a)) & set(list(b)))
|
||||||
|
|
||||||
def tests(f):
|
def tests(f):
|
||||||
inputs = [["this is a string", "ala ma kota"]]
|
inputs = [["this is a string", "ala ma kota"]]
|
||||||
|
6
labs02/test_task.py
Executable file → Normal file
6
labs02/test_task.py
Executable file → Normal file
@ -1,12 +1,12 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
|
||||||
def suma(a, b):
|
|
||||||
"""
|
"""
|
||||||
Napisz funkcję, która zwraca sumę elementów.
|
Napisz funkcję, która zwraca sumę elementów.
|
||||||
"""
|
"""
|
||||||
return 0
|
|
||||||
|
def suma(a, b):
|
||||||
|
return a + b
|
||||||
|
|
||||||
def tests(f):
|
def tests(f):
|
||||||
inputs = [(2, 3), (0, 0), (1, 1)]
|
inputs = [(2, 3), (0, 0), (1, 1)]
|
||||||
|
20
labs04/task02.py
Normal file
20
labs04/task02.py
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
"""
|
||||||
|
**ćwiczenie 2**
|
||||||
|
Napisz generator, który będzie zwracać ``n`` kolejnych liczb ciągu Fibonacciego (``F(0)=1, F(1)=1, FN=F(N-1) + F(N-2)``).
|
||||||
|
"""
|
||||||
|
|
||||||
|
import itertools as it
|
||||||
|
|
||||||
|
n = int(input('Number of occursion: '))
|
||||||
|
|
||||||
|
def fibo():
|
||||||
|
a, b = 0, 1
|
||||||
|
while 1:
|
||||||
|
yield a
|
||||||
|
b = a + b
|
||||||
|
yield b
|
||||||
|
a = a+b
|
||||||
|
gen = fibo()
|
||||||
|
|
||||||
|
for i in it.islice(fibo(), n):
|
||||||
|
print(i)
|
20
labs04/task05.py
Normal file
20
labs04/task05.py
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
"""
|
||||||
|
**ćwiczenie 5**
|
||||||
|
Katalog scores zawiera 64 pliki tekstowe, które posiadają informacje o wysokości miary ``BLEU`` na różnych etapach trenowania modelu. Nazwa każdego pliku na postać ``model.iterXXXXXXX.npz.bleu``, gdzie ``XXXXXXX``, to liczba iteracji.Zawartość każdego pliku jest podobna i ma następującą formę: *BLEU = YY.YY, 44.4/18.5/9.3/5.0 (BP=1.000, ratio=1.072, hyp_len=45976, ref_len=42903)*, gdzie ``YY.YY`` to wartość miary ``BLEU``. Znajdź plik, który zawiera najwyższą wartość miary ``BLEU``.
|
||||||
|
* Wykorzystaj bibliotekę ``glob`` (https://docs.python.org/2/library/glob.html)
|
||||||
|
* Wyświetl tylko pełną nazwe pliku (wraz z ścieżką).
|
||||||
|
"""
|
||||||
|
|
||||||
|
import pandas as pd
|
||||||
|
import glob
|
||||||
|
|
||||||
|
path = r'/home/ghermann/code/python_td/labs04/scores' #change for your system
|
||||||
|
files = glob.glob(path + '/*.npz.bleu')
|
||||||
|
|
||||||
|
dfs = [pd.read_csv(fp, sep=" ", header=None).assign(filepath=fp) for fp in files]
|
||||||
|
df = pd.concat(dfs, ignore_index=True)
|
||||||
|
|
||||||
|
df[2] = df[2].map(lambda c: c.rstrip(','))
|
||||||
|
df[2] = pd.to_numeric(df[2], errors='coerce')
|
||||||
|
|
||||||
|
print(df.at[df[2].idxmax(), 'filepath'])
|
@ -4,15 +4,25 @@
|
|||||||
Sprawdź, czy masz zainstalowany pakiet ``pandas``. Jeżeli nie, zainstaluj go.
|
Sprawdź, czy masz zainstalowany pakiet ``pandas``. Jeżeli nie, zainstaluj go.
|
||||||
|
|
||||||
** zad. 2 (domowe) **
|
** 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, 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. Napisz funkcje, która wczyta zestaw danych z pliku *mieszkania.csv* i zwróci obiekt typu *DataFrame*.
|
||||||
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ą.
|
Jeżeli wszystko zostało zrobione poprawnie, powinno się wyśtwietlić 5 pierwszych wierszy.
|
||||||
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. Uzupełnij funkcję ``most_common_room_number``, która zwróci jaka jest najpopularniejsza liczba pokoi w ogłoszeniach.
|
||||||
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*.
|
Funkcji powinna zwrócić liczbę całkowitą.
|
||||||
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łnij kod w funkcji ``cheapest_flats(dane, n)``, która wzróci *n* najtańszych ofert mieszkań.
|
||||||
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.
|
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. 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. 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,
|
||||||
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.
|
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.
|
||||||
|
@ -1,14 +1,21 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
import pandas as pd
|
||||||
|
import matplotlib.pyplot as plt
|
||||||
|
|
||||||
|
|
||||||
def wczytaj_dane():
|
def wczytaj_dane():
|
||||||
pass
|
df = pd.read_csv("./mieszkania.csv", sep=',', header=0)
|
||||||
|
return df
|
||||||
|
|
||||||
|
|
||||||
def most_common_room_number(dane):
|
def most_common_room_number(dane):
|
||||||
pass
|
return dane['Rooms'].value_counts().idxmax()
|
||||||
|
|
||||||
|
|
||||||
def cheapest_flats(dane, n):
|
def cheapest_flats(dane, n):
|
||||||
pass
|
return dane.sort_values(by='Expected').head(n)
|
||||||
|
|
||||||
|
|
||||||
def find_borough(desc):
|
def find_borough(desc):
|
||||||
dzielnice = ['Stare Miasto',
|
dzielnice = ['Stare Miasto',
|
||||||
@ -19,36 +26,39 @@ def find_borough(desc):
|
|||||||
'Winogrady',
|
'Winogrady',
|
||||||
'Miłostowo',
|
'Miłostowo',
|
||||||
'Dębiec']
|
'Dębiec']
|
||||||
pass
|
return next((desc for i in dzielnice if desc in i), 'Inne')
|
||||||
|
|
||||||
|
|
||||||
def add_borough(dane):
|
def add_borough(dane):
|
||||||
pass
|
dane['Borough'] = dane['Location'].apply(find_borough)
|
||||||
|
|
||||||
|
|
||||||
def write_plot(dane, filename):
|
def write_plot(dane, filename):
|
||||||
pass
|
dane['Borough'].value_counts().plot(x='Borough', y='Quantity of adwerts', kind='bar')
|
||||||
|
plt.savefig('./'+filename)
|
||||||
|
|
||||||
|
|
||||||
def mean_price(dane, room_number):
|
def mean_price(dane, room_number):
|
||||||
pass
|
return dane[dane["Rooms"] == room_number]["Expected"].mean()
|
||||||
|
|
||||||
|
|
||||||
def find_13(dane):
|
def find_13(dane):
|
||||||
pass
|
return dane[dane["Floor"] == 13]["Borough"].unique()
|
||||||
|
|
||||||
|
|
||||||
def find_best_flats(dane):
|
def find_best_flats(dane):
|
||||||
pass
|
return dane[(dane["Borough"] == "Winogrady") & (dane["Floor"] == 1) & (dane["Rooms"] == 3)]
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
dane = wczytaj_dane()
|
dane = wczytaj_dane()
|
||||||
print(dane[:5])
|
print(dane[:5])
|
||||||
|
|
||||||
print("Najpopularniejsza liczba pokoi w mieszkaniu to: {}"
|
print("Najpopularniejsza liczba pokoi w mieszkaniu to: {}".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)))
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
@ -4,77 +4,83 @@
|
|||||||
"""
|
"""
|
||||||
1. Zaimportuj bibliotkę pandas jako pd.
|
1. Zaimportuj bibliotkę pandas jako pd.
|
||||||
"""
|
"""
|
||||||
|
import pandas as pd
|
||||||
|
|
||||||
"""
|
"""
|
||||||
2. Wczytaj zbiór danych `311.csv` do zniennej data.
|
2. Wczytaj zbiór danych `311.csv` do zniennej data.
|
||||||
"""
|
"""
|
||||||
|
data = pd.read_csv("./311.csv", sep=',', header=0, low_memory=0)
|
||||||
|
|
||||||
"""
|
"""
|
||||||
3. Wyświetl 5 pierwszych wierszy z data.
|
3. Wyświetl 5 pierwszych wierszy z data.
|
||||||
"""
|
"""
|
||||||
|
print(data.head(5))
|
||||||
|
|
||||||
"""
|
"""
|
||||||
4. Wyświetl nazwy kolumn.
|
4. Wyświetl nazwy kolumn.
|
||||||
"""
|
"""
|
||||||
|
print(data.columns)
|
||||||
|
|
||||||
"""
|
"""
|
||||||
5. Wyświetl ile nasz zbiór danych ma kolumn i wierszy.
|
5. Wyświetl ile nasz zbiór danych ma kolumn i wierszy.
|
||||||
"""
|
"""
|
||||||
|
print(str(data.shape[1]) +', '+ str(data.shape[0]))
|
||||||
|
|
||||||
"""
|
"""
|
||||||
6. Wyświetl kolumnę 'City' z powyższego zbioru danych.
|
6. Wyświetl kolumnę 'City' z powyższego zbioru danych.
|
||||||
"""
|
"""
|
||||||
|
print(data['City'])
|
||||||
|
|
||||||
"""
|
"""
|
||||||
7. Wyświetl jakie wartoścu przyjmuje kolumna 'City'.
|
7. Wyświetl jakie wartoścu przyjmuje kolumna 'City'.
|
||||||
"""
|
"""
|
||||||
|
print(data['City'].unique())
|
||||||
|
|
||||||
"""
|
"""
|
||||||
8. Wyświetl tabelę rozstawną kolumny City.
|
8. Wyświetl tabelę rozstawną kolumny City.
|
||||||
"""
|
"""
|
||||||
|
print(pd.pivot_table(data,columns=['City']))
|
||||||
|
|
||||||
"""
|
"""
|
||||||
9. Wyświetl tylko pierwsze 4 wiersze z wcześniejszego polecenia.
|
9. Wyświetl tylko pierwsze 4 wiersze z wcześniejszego polecenia.
|
||||||
"""
|
"""
|
||||||
|
print(pd.pivot_table(data,columns=['City']).head(4))
|
||||||
|
|
||||||
"""
|
"""
|
||||||
10. Wyświetl, w ilu przypadkach kolumna City zawiera NaN.
|
10. Wyświetl, w ilu przypadkach kolumna City zawiera NaN.
|
||||||
"""
|
"""
|
||||||
|
print(data['City'].isnull().sum())
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
11. Wyświetl data.info()
|
11. Wyświetl data.info()
|
||||||
"""
|
"""
|
||||||
|
print(data.info())
|
||||||
|
|
||||||
"""
|
"""
|
||||||
12. Wyświetl tylko kolumny Borough i Agency i tylko 5 ostatnich linii.
|
12. Wyświetl tylko kolumny Borough i Agency i tylko 5 ostatnich linii.
|
||||||
"""
|
"""
|
||||||
|
print(data[['Borough','Agency']].tail(5))
|
||||||
|
|
||||||
"""
|
"""
|
||||||
13. Wyświetl tylko te dane, dla których wartość z kolumny Agency jest równa
|
13. Wyświetl tylko te dane, dla których wartość z kolumny Agency jest równa
|
||||||
NYPD. Zlicz ile jest takich przykładów.
|
NYPD. Zlicz ile jest takich przykładów.
|
||||||
"""
|
"""
|
||||||
|
print(data[data['Agency'] == 'NYPD'])
|
||||||
|
print(data['Agency'].value_counts()['NYPD'])
|
||||||
|
|
||||||
"""
|
"""
|
||||||
14. Wyświetl wartość minimalną i maksymalną z kolumny Longitude.
|
14. Wyświetl wartość minimalną i maksymalną z kolumny Longitude.
|
||||||
"""
|
"""
|
||||||
|
print(data['Longitude'].max())
|
||||||
|
print(data['Longitude'].min())
|
||||||
|
|
||||||
"""
|
"""
|
||||||
15. Dodaj kolumne diff, która powstanie przez sumowanie kolumn Longitude i Latitude.
|
15. Dodaj kolumne diff, która powstanie przez sumowanie kolumn Longitude i Latitude.
|
||||||
"""
|
"""
|
||||||
|
data['diff'] = data['Longitude'] + data['Latitude']
|
||||||
|
|
||||||
"""
|
"""
|
||||||
16. Wyświetl tablę rozstawną dla kolumny 'Descriptor', dla której Agency jest
|
16. Wyświetl tablę rozstawną dla kolumny 'Descriptor', dla której Agency jest
|
||||||
równe NYPD.
|
równe NYPD.
|
||||||
"""
|
"""
|
||||||
|
print(pd.pivot_table(data[data['Agency'] == 'NYPD'],columns=['Descriptor']))
|
Loading…
Reference in New Issue
Block a user