![]() |
| obr.: https://pandas.pydata.org |
V minulém příspěvku jsem se zaměřil na získání volně dostupných dat z finančních trhů. Nyní se zaměřím na úplné základy v pandas a z těchto dat získám základní statistický přehled a také se zaměřím na základní manipulaci s datovými strukturami v pandas.
Analýza časových řad 1 - manipulace s daty v Pandas¶
Popis základních funkcí pomocí pro analýzu dat v Pandas.
Info o verzi a notebooku¶
import datetime
MY_VERSION = 1,0
print('Verze notebooku:', '.'.join(map(str, MY_VERSION)))
print('Poslední aktualizace:', datetime.datetime.now())
Informace o použitých python modulech¶
import sys
import datetime
import pandas as pd
import pandas_datareader as pdr
import pandas_datareader.data as pdr_web
import quandl as ql
# Load Quandl API key
import json
with open('quandl_key.json','r') as f:
quandl_api_key = json.load(f)
ql.ApiConfig.api_key = quandl_api_key['API-key']
print('Verze pythonu:')
print(sys.version)
print('---')
print('Pandas:', pd.__version__)
print('pandas-datareader:', pdr.__version__)
print('Quandl version:', ql.version.VERSION)
Series a DataFrame¶
Knihovna pandas používá k uchovávání a zpracování dat své typy Series a DataFrame.
V případě Series se jedná o 1D označená (labeled) struktura dat jednoho typu. DataFrame je pak 2D označená (labeled) struktura dat různých typů. Jednotlivé sloupce v DataFrame jsou typu Series. Další informace v dokumentaci DataFrame a Series.
Data k analýze¶
start_date = datetime.datetime(2015, 1, 1)
end_date = datetime.datetime.now()
ES = ql.get("CHRIS/CME_ES1", start_date=start_date, end_date=end_date)
ES.head()
SPY = pdr_web.DataReader("NYSEARCA:SPY", 'google', start=start_date, end=end_date)
SPY.head()
Základní práce s daty¶
Zobrazení prvních n záznamů z DataFrame.¶
n = 10
#ES.head()
ES.head(n)
Zobrazení posledních n záznamů z DataFrame.¶
n = 10
#ES.tail()
ES.tail(n)
Zobrazeních několik statistických informací ke každému sloupci v DataFrame.¶
ES.describe()
Uložení dat v DataFrame do .csv souboru¶
ES.to_csv('data/es.csv')
Načtení dat z .csv souboru¶
#data = pd.read_csv('data/es.csv')
data = pd.read_csv('data/es.csv', header=0, index_col='Date', parse_dates=True)
data.head(3)
Informace o indexu a sloupcích daného DataFrame¶
data.index
data.columns
# výběr posledních 10 záznamů ze sloupce Last, výsledek je typu Series
vyber = data['Last'][-10:]
vyber
Výběr podle popisu (label-based) a pozice (positional)¶
Pro získání dat podle popisu pandas používá funkce loc. Např. 2017, nebo 2016-11-01 zadáme jako argument:
data.loc['2016-11-01']
vyber = data.loc['2017']
print(vyber.head(5))
print(vyber.tail(5))
Pro získání dat podle pozice pandas používá funkce iloc. Např. 20, nebo 43 zadáme jako argument:
# zobrazí řádek 20
print(data.iloc[20])
# zobrazí řádky 0,1,2,3,4 a sloupce 0,1,2,3
data.iloc[[0,1,2,3,4], [0,1,2,3]]
Více v podrobné dokumentaci Indexing and Selecting Data.
Úprava datového vzorku časové řady¶
Náhodný vzorek dat¶
Vzorek náhodných dat lze získat pomocí funkce sample. Dokumentace k DataFrame.sample.
# Vzorek 20 řádků
sample = data.sample(20)
sample
Získání měsíčního vzorku dat z denního¶
Funkce resample umožňuje flexibilní konverzi frekvence dat jako funkce asfreq, ale i další. Více v dokumentaci k resample a dokumentaci asfreq.
prumer = data.resample('M').mean()
prumer.head()
mesicni = data.asfreq("M", method="bfill")
mesicni.head()
Vypočítání volatility EOD dat¶
Se sloupci DataFramu můžu bezproblému aritmeticky počítat. Pro získání volatility jednotlivých denních záznamů, odečtu jednoduše sloupec low od sloupce high a výsledek vložím do sloupce ATR.
data['ATR_1'] = data.High - data.Low
data.head()
Smazání sloupce¶
Smazat sloupce lze pomocí klíčového slova del.
del data['ATR_1']
data.head()

Dovolte mi, abych vám představil LE-MERIDIAN FUNDING SERVICES. Jsme přímo do čistého úvěru a financování projektů z hlediska investic. Poskytujeme finanční řešení soukromým / společnostem hledajícím přístup k finančním prostředkům na kapitálových trzích, tj. Ropu a zemní plyn, nemovitosti, obnovitelné zdroje energie, léčiva, zdravotnictví, dopravu, stavebnictví, hotely a atd. Můžeme financovat až 900 000 000 000 dolarů ( Devět set milionů dolarů) v jakémkoli regionu světa, pokud bude na projektech zaručena návratnost investic ve výši 1,9%.
OdpovědětVymazatLe-Meridian financování.
Email Kontakt .... lnfo@lemeridianfds.com
Whatapps ... + 19893943740