diff --git a/labs06/task02.py b/labs06/task02.py old mode 100755 new mode 100644 index 9d96016..a7ae82c --- a/labs06/task02.py +++ b/labs06/task02.py @@ -1,14 +1,22 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- +import pandas as pd +import matplotlib.pyplot as plt + + def wczytaj_dane(): - pass + df = pd.read_csv("./mieszkania.csv", sep=',', header=0) + return df + def most_common_room_number(dane): - pass + return dane['Rooms'].value_counts().idxmax() + def cheapest_flats(dane, n): - pass + return dane.sort_values(by='Expected').head(n) + def find_borough(desc): dzielnice = ['Stare Miasto', @@ -19,36 +27,40 @@ def find_borough(desc): 'Winogrady', 'Miłostowo', 'Dębiec'] - pass + return next((desc for i in dzielnice if desc in i), 'Inne') def add_borough(dane): - pass + dane['Borough'] = dane['Location'].apply(find_borough) + 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): - 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() print(dane[:5]) - print("Najpopularniejsza liczba pokoi w mieszkaniu to: {}" - .format(most_common_room_number(dane))) + 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łądniejsza dzielnica w Poznaniu.".format(find_borough("Grunwald i Jeżyce"))) - print("Średnia cena mieszkania 3-pokojowego, to: {}" - .format(mean_price(dane, 3))) + print("Średnia cena mieszkania 3-pokojowego, to: {}".format(mean_price(dane, 3))) if __name__ == "__main__": main() + diff --git a/labs06/tasks.py b/labs06/tasks.py old mode 100755 new mode 100644 index 8b2c28e..56d8430 --- a/labs06/tasks.py +++ b/labs06/tasks.py @@ -4,77 +4,83 @@ """ 1. Zaimportuj bibliotkę pandas jako pd. """ - +import pandas as pd """ 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. """ - +print(data.head(5)) """ 4. Wyświetl nazwy kolumn. """ - +print(data.columns) """ 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. """ - +print(data['City']) """ 7. Wyświetl jakie wartoścu przyjmuje kolumna 'City'. """ +print(data['City'].unique()) """ 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. """ - +print(pd.pivot_table(data,columns=['City']).head(4)) """ 10. Wyświetl, w ilu przypadkach kolumna City zawiera NaN. """ - - +print(data['City'].isnull().sum()) """ 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']) +print(data['Agency'].value_counts()['NYPD']) """ 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. """ - +data['diff'] = data['Longitude'] + data['Latitude'] """ 16. Wyświetl tablę rozstawną dla kolumny 'Descriptor', dla której Agency jest równe NYPD. """ +print(pd.pivot_table(data[data['Agency'] == 'NYPD'],columns=['Descriptor']))