Projekt pri predmetu Programiranje 1, ko smo se učili obdelave podatkov. Podatke sem zajemala iz te spletne strani. Za vsak vikend v obdobju od 3. februarja do 31. decembra 2017 sem poiskala 200 najugodnejših ponudb za 2 nočitvi za 2 odrasli osebi.
V analizi bom najprej prikazala datoteke, iz katerih bom potem črpala informacije, da bom lahko odgovorila na naslednja vprašanja:
Uvodne vrstice za delo s orodjem pandas.
In [87]:
# naložimo paket
import pandas as pd
import matplotlib.pyplot as plt
pd.set_option('display.mpl_style', 'default') # Make the graphs a bit prettier
plt.rcParams['figure.figsize'] = (15, 5)
plt.rcParams['font.family'] = 'sans-serif'
pd.set_option('display.width', 5000)
pd.set_option('display.max_columns', 20)
# naložimo datoteke, ki jih bomo uporabljali pri analizi
london = pd.read_csv('LONDON.csv')
hoteli = pd.read_csv('LONDON_Hoteli.csv')
Zdaj pa zares! V datoteki spodaj so zajeti naslednji podatki : datum začetka vikenda (petek), ID hotela in ceno namestitve za 2 noči za 2 odrasli osebi.
In [88]:
london[:10]
Out[88]:
V datoteki spodaj so zajeti podatki o hotelih: ID hotela, ime, razdalja do središča, ocena gostov, ali je možnost brezplačne prekinitve rezervacije in kratek opis.
In [89]:
hoteli[:3]
Out[89]:
Spodaj pa si lahko ogledamo združeno tabelo, kjer so prikazane vse namestitve z dodanimi podatki o hotelih.
In [90]:
merged = london.merge(hoteli, on= 'hotelId')
merged[:3]
Out[90]:
In [91]:
urejeni_po_ceni = london.sort_values('price')
urejeni_po_ceni[:3] ############popravi na prvih 20 vrstic!!!
Out[91]:
Odgovor: Najcenejša nočitev je 3. novembra 2017 in stane samo 62 dolarjev. Če pogledamo malo širše: najcenejših 20 ponudb se giblje med 62 in 74 dolarji. Koliko je to evrov, lahko preverite tukaj. Če pogledamo datume, lahko opazimo, da so prisotni predvsem meseci iz druge polovice leta. Morda je takrat še bolj deževno in vetrovno kot ponavadi, kdo bi vedel. :)
In [92]:
london_po_datumih = london.groupby("friday")
london_po_datumih["price"].mean().plot()
Out[92]:
Cene kar precej poskakujejo, vendar pa lahko zaznamo naraščanje v prvi polovici leta in potem zopet padanje v drugi polovici leta. Najdražje nočitve so v povprečju junija, najcenejše pa marca.
In [93]:
razdalje = merged['proximityDistance']
ocene = merged['guestRating']
razdalje, ocene = zip(*sorted(zip(razdalje,ocene), key=lambda x: x[0]))
plt.plot(razdalje, ocene)
Out[93]:
Iz grafa se težko razbere kakšno smiselno povezavo med oddaljenostjo od centra in oceno gostov. Verjetno k temu pripomorejo dejavniki, ki jih v analizi nisem zajela, npr možnost uporabe in kvaliteta wifija ali kaj podobnega. Opazka: Graf od 6 milje naprej ni reprezentativen. Če bi bil, bi lahko posplošili, da je je ocena vseh hotelov med 7,5 in 8 miljami tako nizka, pa temu gotovo ni tako. To pripisujem premajhnemu številu hotelov na tej razdalji. Po pogledu v osnovno tabelo, sem ugotovila, da se na razdalji 7.53 milje nahaja hotel Apartment Wharf - Discovery Dock West, ki ima oceno 0, kar pomeni, da nima sploh ocene.
In [94]:
urejeni_po_ceni_skupno = merged.sort_values('price')
najcenejsi = urejeni_po_ceni_skupno[:200]
najdrazji = urejeni_po_ceni_skupno[-200:]
urejeni_po_ceni_skupno[:10]
Out[94]:
In [95]:
urejeni_po_ceni_skupno[-10:]
Out[95]:
In [96]:
najcenejsi.mean()
Out[96]:
In [97]:
najdrazji.mean()
Out[97]:
Za vzorec sem vzela 200 najcenejših in 200 najdražjih ponudb. Razlika v povprečni ceni je kar 677,395 dolarjev. Koliko je to evrov, lahko preverite tukaj. Razlika med najcenejšo in najdražjo ponudbo pa je kar 1789 dolarjev.
Iz zgornjih dveh izračunov povprečnih vrednosti za najcenejše in najdražje namestitve lahko razberemo tudi ta podatek. V najdražjih hotelih je možnost, da je prekinitev rezervacije brezplačna kar 99%, medtem ko je v hotelih, ki nudijo najcenejšo namestitev ta možnost zgolj 12,5 %.
In [98]:
razdalje = merged['proximityDistance']
cene = merged['price']
razdalje, cene = zip(*sorted(zip(razdalje,cene), key=lambda x: x[0]))
plt.plot(razdalje, cene)
Out[98]:
Preden sem naredila analizo, sem postavila hipotezo, da cena z razdaljo pada. Graf to hipotezo potrdi z nekaj izjemami, ki jih pripisujem dejstvu, da je lahko tudi kakšen bolj udobno opremljen hotel, ki ni ravno v centru, pa ima vseeno malo višjo ceno.
Tako! Z odgovorom na še zadnje zastavljeno vprašanje zaključujem svojo analizo. Tako analizo bi lahko naredili za poljubno mesto. Vse, kar je treba spremeniti, je naslednje: v tej datoteki nastaviti drugo mesto, pognati program, si vmes skuhati eno kavo ali pa 2, in še enkrat zagnati vse celice v tem jupyter notebooku in analiza se lahko prične. Obilico veselja!
In [ ]: