forked from tdwojak/Python2018
Compare commits
No commits in common. "master" and "master" have entirely different histories.
@ -1,11 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="PYTHON_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
<component name="TestRunnerService">
|
||||
<option name="PROJECT_TEST_RUNNER" value="Unittests" />
|
||||
</component>
|
||||
</module>
|
@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.6 (tralala)" project-jdk-type="Python SDK" />
|
||||
</project>
|
@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/Python2018.iml" filepath="$PROJECT_DIR$/.idea/Python2018.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
@ -168,7 +168,7 @@ for i in range(5):# range[5] = [0,1,2,3,4]
|
||||
|
||||
for zmienna in lista:
|
||||
# operacje do wykonania w pętli
|
||||
pass
|
||||
|
||||
|
||||
# In[ ]:
|
||||
|
||||
|
@ -9,64 +9,48 @@ Zadania wprowadzające do pierwszych ćwiczeń.
|
||||
"""
|
||||
Wypisz na ekran swoje imię i nazwisko.
|
||||
"""
|
||||
print('Ola Piechowiak')
|
||||
|
||||
|
||||
"""
|
||||
Oblicz i wypisz na ekran pole koła o promienie 10. Jako PI przyjmij 3.14.
|
||||
|
||||
"""
|
||||
r=10
|
||||
pi=3.14
|
||||
pole=pi * r**2
|
||||
print(pole)
|
||||
|
||||
"""
|
||||
Stwórz zmienną pole_kwadratu i przypisz do liczbę: pole kwadratu o boku 3.
|
||||
"""
|
||||
pole_kwadratu =3**2
|
||||
print(pole_kwadratu)
|
||||
|
||||
"""
|
||||
Stwórz 3 elementową listę, która zawiera nazwy 3 Twoich ulubionych owoców.
|
||||
Wynik przypisz do zmiennej `owoce`.
|
||||
"""
|
||||
owoce=["banan","jagoda","mandarynka"]
|
||||
print(owoce)
|
||||
|
||||
"""
|
||||
Dodaj do powyższej listy jako nowy element "pomidor".
|
||||
"""
|
||||
owoce.append('pomidor')
|
||||
print(owoce)
|
||||
|
||||
"""
|
||||
Usuń z powyższej listy drugi element.
|
||||
"""
|
||||
owoce.pop(1)
|
||||
print(owoce)
|
||||
|
||||
|
||||
"""
|
||||
Rozszerz listę o tablice ['Jabłko', "Gruszka"].
|
||||
"""
|
||||
owoce.append(['Jabłko', "Gruszka"])
|
||||
print(owoce)
|
||||
|
||||
"""
|
||||
Wyświetl listę owoce, ale bez pierwszego i ostatniego elementu.
|
||||
"""
|
||||
print(owoce[1:-1])
|
||||
|
||||
"""
|
||||
Wyświetl co trzeci element z listy owoce.
|
||||
|
||||
"""
|
||||
print(owoce[::3])
|
||||
|
||||
"""
|
||||
Stwórz pusty słownik i przypisz go do zmiennej magazyn.
|
||||
"""
|
||||
magazyn={}
|
||||
print(magazyn)
|
||||
|
||||
"""
|
||||
Dodaj do słownika magazyn owoce z listy owoce, tak, aby owoce były kluczami,
|
||||
zaś wartościami były równe 5.
|
||||
"""
|
||||
|
||||
for i in owoce:
|
||||
magazyn[i]=5
|
||||
print(magazyn)
|
@ -7,8 +7,7 @@ która zawiera tylko elementy z list o parzystych indeksach.
|
||||
"""
|
||||
|
||||
def even_elements(lista):
|
||||
return lista[::2]
|
||||
|
||||
pass
|
||||
|
||||
|
||||
def tests(f):
|
||||
|
@ -4,11 +4,6 @@
|
||||
"""
|
||||
Napisz funkcję days_in_year zwracającą liczbę dni w roku (365 albo 366).
|
||||
"""
|
||||
def days_in_year(days):
|
||||
if (days % 4 == 0 and ((days % 100 != 0) or days % 400 == 0)):
|
||||
return 366
|
||||
else:
|
||||
return 365
|
||||
|
||||
def days_in_year(days):
|
||||
pass
|
||||
|
@ -11,7 +11,6 @@ litery. (OOV = out of vocabulary) (W pythonie istnieje struktura danych tak
|
||||
jak 'set', która przechowuje elementy bez powtórzeń.)
|
||||
"""
|
||||
|
||||
def oov(text, vocab):
|
||||
|
||||
def oov(text, vocab):
|
||||
pass
|
||||
|
@ -7,10 +7,8 @@ Jeśli podany argument jest mniejszy od 1 powinna być zwracana wartość 0.
|
||||
"""
|
||||
|
||||
def sum_from_one_to_n(n):
|
||||
if n<1:
|
||||
return 0
|
||||
else:
|
||||
return sum(range(1,n+1))
|
||||
pass
|
||||
|
||||
|
||||
def tests(f):
|
||||
inputs = [[999], [-100]]
|
||||
|
@ -10,8 +10,7 @@ np. odległość pomiędzy punktami (0, 0, 0) i (3, 4, 0) jest równa 5.
|
||||
"""
|
||||
|
||||
def euclidean_distance(x, y):
|
||||
return ((x[0] - y[0]) ** 2 + (x[1] - y[1]) ** 2 + (x[2] - y[2]) ** 2) ** 0.5
|
||||
|
||||
pass
|
||||
|
||||
def tests(f):
|
||||
inputs = [[(2.3, 4.3, -7.5), (2.3, 8.5, -7.5)]]
|
||||
|
@ -5,11 +5,8 @@
|
||||
Napisz funkcję char_sum, która dla zadanego łańcucha zwraca
|
||||
sumę kodów ASCII znaków.
|
||||
"""
|
||||
|
||||
def char_sum(text):
|
||||
return sum(ord(i) for i in text)
|
||||
|
||||
|
||||
pass
|
||||
|
||||
def tests(f):
|
||||
inputs = [["this is a string"], ["this is another string"]]
|
||||
|
@ -7,11 +7,7 @@ przez 3 lub 5 mniejszych niż n.
|
||||
"""
|
||||
|
||||
def sum_div35(n):
|
||||
suma=0
|
||||
for i in range(n):
|
||||
if (i%3 ==0 or i%5 ==0):
|
||||
suma += i
|
||||
return(suma)
|
||||
pass
|
||||
|
||||
def tests(f):
|
||||
inputs = [[10], [100], [3845]]
|
||||
|
@ -9,11 +9,7 @@ Np. leet('leet') powinno zwrócić '1337'.
|
||||
|
||||
|
||||
def leet_speak(text):
|
||||
text = text.replace('e', '3')
|
||||
text = text.replace('l', '1')
|
||||
text = text.replace('o', '0')
|
||||
text = text.replace('t', '7')
|
||||
return text
|
||||
pass
|
||||
|
||||
|
||||
def tests(f):
|
||||
|
@ -9,16 +9,7 @@ na wielką. Np. pokemon_speak('pokemon') powinno zwrócić 'PoKeMoN'.
|
||||
|
||||
|
||||
def pokemon_speak(text):
|
||||
lista = []
|
||||
for i in range(len(text)):
|
||||
if i % 2 == 0:
|
||||
lista.append(text[i].upper())
|
||||
else:
|
||||
lista.append(text[i])
|
||||
|
||||
return ''.join(lista)
|
||||
|
||||
|
||||
pass
|
||||
|
||||
|
||||
def tests(f):
|
||||
|
@ -9,15 +9,7 @@ Oba napisy będą składać się wyłacznie z małych liter.
|
||||
"""
|
||||
|
||||
def common_chars(string1, string2):
|
||||
string1 = set(string1.replace(" ", ""))
|
||||
string2 = set(string2.replace(" ", ""))
|
||||
common = []
|
||||
for a1 in string1:
|
||||
for a2 in string2:
|
||||
if a1 == a2:
|
||||
common.append(a1)
|
||||
common.sort()
|
||||
return common
|
||||
pass
|
||||
|
||||
|
||||
def tests(f):
|
||||
|
@ -4,42 +4,15 @@
|
||||
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.
|
||||
|
@ -1,21 +1,14 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
import pandas as pd
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
def wczytaj_dane():
|
||||
mieszkania = pd.read_csv('mieszkania.csv',
|
||||
sep=',',
|
||||
encoding='UTF-8',
|
||||
usecols=[0,1,2,3,4,5,6])
|
||||
return mieszkania
|
||||
pass
|
||||
|
||||
def most_common_room_number(dane):
|
||||
return dane.mode(numeric_only=True)["Rooms"][0]
|
||||
pass
|
||||
|
||||
def cheapest_flats(dane, n):
|
||||
return dane.sort_values(by=['Expected'], ascending=False).head(n)
|
||||
pass
|
||||
|
||||
def find_borough(desc):
|
||||
dzielnice = ['Stare Miasto',
|
||||
@ -26,29 +19,23 @@ def find_borough(desc):
|
||||
'Winogrady',
|
||||
'Miłostowo',
|
||||
'Dębiec']
|
||||
for i in dzielnice:
|
||||
if desc.find(i) + 1:
|
||||
return (i)
|
||||
return ('Inne')
|
||||
pass
|
||||
|
||||
|
||||
def add_borough(dane):
|
||||
dane['Borough'] = dane['Location'].apply(find_borough)
|
||||
return (dane)
|
||||
pass
|
||||
|
||||
def write_plot(dane, filename):
|
||||
bar = dane["Borough"].value_counts().plot(kind="bar", figsize=(6, 6))
|
||||
fig = bar.get_figure()
|
||||
fig.savefig(filename)
|
||||
pass
|
||||
|
||||
def mean_price(dane, room_number):
|
||||
return dane[dane["Rooms"] == room_number]["Expected"].mean()
|
||||
pass
|
||||
|
||||
def find_13(dane):
|
||||
return dane[dane["Floor"] == 13]["Borough"].unique()
|
||||
pass
|
||||
|
||||
def find_best_flats(dane):
|
||||
return dane[(dane["Borough"] == "Winogrady") & (dane["Floor"] == 1) & (dane["Rooms"] == 3)]
|
||||
pass
|
||||
|
||||
def main():
|
||||
dane = wczytaj_dane()
|
||||
@ -57,8 +44,8 @@ def main():
|
||||
print("Najpopularniejsza liczba pokoi w mieszkaniu to: {}"
|
||||
.format(most_common_room_number(dane)))
|
||||
|
||||
print("{} to najładniejsza dzielnica w Poznaniu."
|
||||
.format(find_borough("Grunwald i Jeżyce")))
|
||||
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)))
|
||||
|
@ -5,102 +5,76 @@
|
||||
1. Zaimportuj bibliotkę pandas jako pd.
|
||||
"""
|
||||
|
||||
import pandas as pd
|
||||
|
||||
"""
|
||||
2. Wczytaj zbiór danych `311.csv` do zniennej data.
|
||||
"""
|
||||
|
||||
data = pd.read_csv("J:/PycharmProjects/Python2018/labs06/311.csv", low_memory = False)
|
||||
|
||||
|
||||
"""
|
||||
3. Wyświetl 5 pierwszych wierszy z data.
|
||||
"""
|
||||
|
||||
# print(data.head())
|
||||
|
||||
|
||||
"""
|
||||
4. Wyświetl nazwy kolumn.
|
||||
"""
|
||||
|
||||
# print(data.info())
|
||||
#print(data.columns)
|
||||
|
||||
"""
|
||||
5. Wyświetl ile nasz zbiór danych ma kolumn i wierszy.
|
||||
|
||||
"""
|
||||
#shape = data.shape
|
||||
#rows = shape[0]
|
||||
#cols = shape[1]
|
||||
|
||||
#print(rows, cols)
|
||||
|
||||
"""
|
||||
6. Wyświetl kolumnę 'City' z powyższego zbioru danych.
|
||||
"""
|
||||
|
||||
#print(data['City'])
|
||||
|
||||
"""
|
||||
7. Wyświetl jakie wartoścu przyjmuje kolumna 'City'.
|
||||
|
||||
"""
|
||||
#print(data.City.unique())
|
||||
|
||||
"""
|
||||
8. Wyświetl tabelę rozstawną kolumny City.
|
||||
"""
|
||||
#print(data.City.value_counts())
|
||||
|
||||
|
||||
"""
|
||||
9. Wyświetl tylko pierwsze 4 wiersze z wcześniejszego polecenia.
|
||||
"""
|
||||
#print(data.City.value_counts().head(4))
|
||||
|
||||
|
||||
"""
|
||||
10. Wyświetl, w ilu przypadkach kolumna City zawiera NaN.
|
||||
"""
|
||||
|
||||
#print(data[data['City'] == 'isnull'])
|
||||
|
||||
|
||||
"""
|
||||
11. Wyświetl data.info()
|
||||
"""
|
||||
#print(data.info())
|
||||
|
||||
"""
|
||||
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
|
||||
NYPD. Zlicz ile jest takich przykładów.
|
||||
|
||||
"""
|
||||
#print(data[data['Agency'] == 'NYPD'])
|
||||
|
||||
"""
|
||||
14. Wyświetl wartość minimalną i maksymalną z kolumny Longitude.
|
||||
"""
|
||||
#wartosc = data['Longitude']
|
||||
#print(wartosc.max())
|
||||
#print(wartosc.min())
|
||||
|
||||
"""
|
||||
15. Dodaj kolumne diff, która powstanie przez sumowanie kolumn Longitude i Latitude.
|
||||
"""
|
||||
x=data['Longitude']
|
||||
y=data['Latitude']
|
||||
data['diff'] = x+y
|
||||
print(data['diff'])
|
||||
|
||||
|
||||
"""
|
||||
16. Wyświetl tablę rozstawną dla kolumny 'Descriptor', dla której Agency jest
|
||||
równe NYPD.
|
||||
"""
|
||||
|
||||
p = data[data['Agency'] == 'NYPD']
|
||||
p.Descriptor.value_counts()
|
Loading…
Reference in New Issue
Block a user