Import bibliotek.
Po wcześniejszym zapoznaniu się z plikiem wczytanie danych i przypisanie tabeli do zmiennej gp.
Oznaczenie występujących w danych wartości "#N/D!" jako puste pole oraz ustwienie kolumny "Data" jako indeks tabeli po wcześniejszej zmianie typu danych tej kolumny z tekstowego na typ czasowy.
Out[2]:
|
Cena |
Data |
|
2014-01-01 |
26,85 |
2014-01-02 |
26,85 |
2014-01-03 |
26,3 |
2014-01-04 |
26,3 |
2014-01-05 |
26,5 |
Odczytanie infromacji o utworzonej tabeli.
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 1384 entries, 2014-01-01 to 2017-10-15
Data columns (total 1 columns):
Cena 1376 non-null object
dtypes: object(1)
memory usage: 21.6+ KB
Zamiana "," na ".", by ułatwić zmianę typu danych w kolumnie "Ceny" z tekstowego na liczbowy, by umożliwić dalsze obliczenia.
Out[4]:
|
Cena |
Data |
|
2014-01-01 |
26.85 |
2014-01-02 |
26.85 |
2014-01-03 |
26.30 |
2014-01-04 |
26.30 |
2014-01-05 |
26.50 |
Uzupłenienie brakujących cen metodą zastąpienia brakującej wartości ostatnią, znaną wartością.
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 1384 entries, 2014-01-01 to 2017-10-15
Data columns (total 1 columns):
Cena 1384 non-null float64
dtypes: float64(1)
memory usage: 21.6 KB
Odczytanie podstawowaych statystyk z uzupełnionej i odpowiednio sformatowanej tabeli.
Out[6]:
|
Cena |
count |
1384.000000 |
mean |
17.966688 |
std |
3.570067 |
min |
10.280000 |
25% |
15.240000 |
50% |
17.770000 |
75% |
20.717750 |
max |
26.955000 |
Out[7]:
|
count |
mean |
std |
min |
25% |
50% |
75% |
max |
Data |
|
|
|
|
|
|
|
|
2014 |
365.0 |
20.946060 |
3.028143 |
15.00 |
18.5000 |
21.149 |
23.0430 |
26.955 |
2015 |
365.0 |
19.855482 |
1.966539 |
13.30 |
18.7100 |
20.428 |
21.0460 |
24.097 |
2016 |
366.0 |
14.089399 |
2.041196 |
10.28 |
12.6000 |
13.675 |
15.2300 |
19.030 |
2017 |
288.0 |
16.724351 |
1.742881 |
14.76 |
15.4475 |
16.190 |
17.5135 |
22.680 |
Budowa wykresu zmian ceny na dla całego okresu dostępnego w danych.
Dodanie lini oznaczająca średnia wartośc ceny dla danego okresu.
Stworzenie funcji pozwalającej na narysowanie wykresu zmian ceny w wybranym roku.
Analiza:
Jak widać na wykresie rok 2014 rozpoczął spory spadek ceny gazu ziemnego który trwał do lipca owego roku. Mimo wzrostu ceny w kolejnych miesiącach rok 2015 zapoczątkował trend spadkowy trwający do sierpnia 2016 roku w którym, to cena gazu stała na rekordowo niskim poziomie. Głównym powodem spadków ceny mimo rosnącego zapotrzebowania na gaz była nadwyżka podaży nad popyt, spowodowana zwiększeniem dostaw gazu ziemnego najpierw w 2015, a potem w 2016 roku przez Rosję oraz Norwegię. Kolejne miesiące roku 2016 to wzrost cen trwający do początku lutego bieżącego roku. Jak wiemy gas ziemny jest “efektem uboczny” wydobycia ropy naftowej dlatego wzrost jej ceny przyczynił się do podwyżki cen indeksowanych kontraktów importowych gazu ziemnego w Europie. Po okresie wzrostów obserwujemy mocny spadek ceny spowodowany obniżką cen na dostawę gazu do Niemiec przez rosyjski Gazprom.
Na cenę gazu ma wpływ także pogoda. Możemy zauważyć wzrosty cen w okresach sezonu grzewczego. Im niższe temperatury tym większy popyt na gaz co skutkuje wzrostem ceny. Innym czynnikiem mającym wpływ na wzrost cen są regulacje odnośnie ograniczenia wydobycia i zużycia paliw kopalnych takich jak węgiel i ropa oraz regulacje ograniczenia emisji CO2.
Moim zdaniem potencjalne wydarzenia mogące mieć wpływ na poziom wyceny gazu Niemczech, to kolejne ograniczenia na wydobycie paliw kopalnych takich jak węgiel i ropa, czego skutkiem, będzie wzrost ceny, jednocześnie będa one ogarniczone konkurencją cenową miedzy Rosją oraz Norwegią, a wchodzącymi na rynek europejski dostawcami gazu ziemnego takimi jak USA gdzie “rewolucja łupkowa” spowodowała nadwyżkę podaży nad popytem co umożliwia eksport gazu do Europy.
Jeśli chodzi najbliższe kilka miesięcy myśle, że po lekkim wzrostcie ceny w okresie zimowym związanym ze zwiększonym popytem na energie, w okolicach lutego nastąpi powrót ceny do poprzedniego poziomu i powolny wzrost przez kolejne miesiące.