{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# /usr/lib/python3/dist-packages/pandas/tools/tests/data/quotes2.csv\n",
"df = pd.read_csv('quotes2.csv')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"time object\n",
"ticker object\n",
"bid float64\n",
"ask float64\n",
"dtype: object"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df.dtypes"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"df.drop_duplicates(inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"idf = df.set_index('ticker')"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"idf = df.set_index(['ticker', 'time'])"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"
\n",
" \n",
" \n",
" | \n",
" bid | \n",
" ask | \n",
"
\n",
" \n",
" time | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" 20160525 13:30:00.075 | \n",
" 98.55 | \n",
" 98.56 | \n",
"
\n",
" \n",
" 20160525 13:30:00.076 | \n",
" 98.55 | \n",
" 98.56 | \n",
"
\n",
" \n",
" 20160525 13:30:00.080 | \n",
" 98.55 | \n",
" 98.56 | \n",
"
\n",
" \n",
" 20160525 13:30:00.084 | \n",
" 98.55 | \n",
" 98.56 | \n",
"
\n",
" \n",
" 20160525 13:30:00.086 | \n",
" 98.55 | \n",
" 98.63 | \n",
"
\n",
" \n",
" 20160525 13:30:00.088 | \n",
" 98.65 | \n",
" 98.63 | \n",
"
\n",
" \n",
" 20160525 13:30:00.089 | \n",
" 98.63 | \n",
" 98.63 | \n",
"
\n",
" \n",
" 20160525 13:30:00.104 | \n",
" 98.63 | \n",
" 98.63 | \n",
"
\n",
" \n",
" 20160525 13:30:00.104 | \n",
" 98.62 | \n",
" 98.63 | \n",
"
\n",
" \n",
" 20160525 13:30:00.105 | \n",
" 98.62 | \n",
" 98.63 | \n",
"
\n",
" \n",
" 20160525 13:30:00.107 | \n",
" 98.62 | \n",
" 98.63 | \n",
"
\n",
" \n",
" 20160525 13:30:00.115 | \n",
" 98.62 | \n",
" 98.63 | \n",
"
\n",
" \n",
" 20160525 13:30:00.118 | \n",
" 98.62 | \n",
" 98.63 | \n",
"
\n",
" \n",
" 20160525 13:30:00.128 | \n",
" 98.62 | \n",
" 98.63 | \n",
"
\n",
" \n",
" 20160525 13:30:00.129 | \n",
" 98.62 | \n",
" 98.63 | \n",
"
\n",
" \n",
" 20160525 13:30:00.129 | \n",
" 98.61 | \n",
" 98.63 | \n",
"
\n",
" \n",
" 20160525 13:30:00.130 | \n",
" 98.61 | \n",
" 98.63 | \n",
"
\n",
" \n",
" 20160525 13:30:00.131 | \n",
" 98.61 | \n",
" 98.62 | \n",
"
\n",
" \n",
" 20160525 13:30:00.135 | \n",
" 98.61 | \n",
" 98.62 | \n",
"
\n",
" \n",
" 20160525 13:30:00.136 | \n",
" 98.61 | \n",
" 98.62 | \n",
"
\n",
" \n",
" 20160525 13:30:00.144 | \n",
" 98.61 | \n",
" 98.62 | \n",
"
\n",
" \n",
" 20160525 13:30:00.145 | \n",
" 98.61 | \n",
" 98.62 | \n",
"
\n",
" \n",
" 20160525 13:30:00.145 | \n",
" 98.61 | \n",
" 98.63 | \n",
"
\n",
" \n",
" 20160525 13:30:00.145 | \n",
" 98.60 | \n",
" 98.63 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
"\n",
" bid ask\n",
"time \n",
"20160525 13:30:00.075 98.55 98.56\n",
"20160525 13:30:00.076 98.55 98.56\n",
"20160525 13:30:00.080 98.55 98.56\n",
"20160525 13:30:00.084 98.55 98.56\n",
"20160525 13:30:00.086 98.55 98.63\n",
"20160525 13:30:00.088 98.65 98.63\n",
"20160525 13:30:00.089 98.63 98.63\n",
"20160525 13:30:00.104 98.63 98.63\n",
"20160525 13:30:00.104 98.62 98.63\n",
"20160525 13:30:00.105 98.62 98.63\n",
"20160525 13:30:00.107 98.62 98.63\n",
"20160525 13:30:00.115 98.62 98.63\n",
"20160525 13:30:00.118 98.62 98.63\n",
"20160525 13:30:00.128 98.62 98.63\n",
"20160525 13:30:00.129 98.62 98.63\n",
"20160525 13:30:00.129 98.61 98.63\n",
"20160525 13:30:00.130 98.61 98.63\n",
"20160525 13:30:00.131 98.61 98.62\n",
"20160525 13:30:00.135 98.61 98.62\n",
"20160525 13:30:00.136 98.61 98.62\n",
"20160525 13:30:00.144 98.61 98.62\n",
"20160525 13:30:00.145 98.61 98.62\n",
"20160525 13:30:00.145 98.61 98.63\n",
"20160525 13:30:00.145 98.60 98.63"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"idf.loc['AAPL']"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" bid | \n",
" ask | \n",
"
\n",
" \n",
" time | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" 20160525 13:30:00.075 | \n",
" 98.55 | \n",
" 98.56 | \n",
"
\n",
" \n",
" 20160525 13:30:00.076 | \n",
" 98.55 | \n",
" 98.56 | \n",
"
\n",
" \n",
" 20160525 13:30:00.080 | \n",
" 98.55 | \n",
" 98.56 | \n",
"
\n",
" \n",
" 20160525 13:30:00.084 | \n",
" 98.55 | \n",
" 98.56 | \n",
"
\n",
" \n",
" 20160525 13:30:00.086 | \n",
" 98.55 | \n",
" 98.63 | \n",
"
\n",
" \n",
" 20160525 13:30:00.088 | \n",
" 98.65 | \n",
" 98.63 | \n",
"
\n",
" \n",
" 20160525 13:30:00.089 | \n",
" 98.63 | \n",
" 98.63 | \n",
"
\n",
" \n",
" 20160525 13:30:00.104 | \n",
" 98.63 | \n",
" 98.63 | \n",
"
\n",
" \n",
" 20160525 13:30:00.104 | \n",
" 98.62 | \n",
" 98.63 | \n",
"
\n",
" \n",
" 20160525 13:30:00.105 | \n",
" 98.62 | \n",
" 98.63 | \n",
"
\n",
" \n",
" 20160525 13:30:00.107 | \n",
" 98.62 | \n",
" 98.63 | \n",
"
\n",
" \n",
" 20160525 13:30:00.115 | \n",
" 98.62 | \n",
" 98.63 | \n",
"
\n",
" \n",
" 20160525 13:30:00.118 | \n",
" 98.62 | \n",
" 98.63 | \n",
"
\n",
" \n",
" 20160525 13:30:00.128 | \n",
" 98.62 | \n",
" 98.63 | \n",
"
\n",
" \n",
" 20160525 13:30:00.129 | \n",
" 98.62 | \n",
" 98.63 | \n",
"
\n",
" \n",
" 20160525 13:30:00.129 | \n",
" 98.61 | \n",
" 98.63 | \n",
"
\n",
" \n",
" 20160525 13:30:00.130 | \n",
" 98.61 | \n",
" 98.63 | \n",
"
\n",
" \n",
" 20160525 13:30:00.131 | \n",
" 98.61 | \n",
" 98.62 | \n",
"
\n",
" \n",
" 20160525 13:30:00.135 | \n",
" 98.61 | \n",
" 98.62 | \n",
"
\n",
" \n",
" 20160525 13:30:00.136 | \n",
" 98.61 | \n",
" 98.62 | \n",
"
\n",
" \n",
" 20160525 13:30:00.144 | \n",
" 98.61 | \n",
" 98.62 | \n",
"
\n",
" \n",
" 20160525 13:30:00.145 | \n",
" 98.61 | \n",
" 98.62 | \n",
"
\n",
" \n",
" 20160525 13:30:00.145 | \n",
" 98.61 | \n",
" 98.63 | \n",
"
\n",
" \n",
" 20160525 13:30:00.145 | \n",
" 98.60 | \n",
" 98.63 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
"\n",
" bid ask\n",
"time \n",
"20160525 13:30:00.075 98.55 98.56\n",
"20160525 13:30:00.076 98.55 98.56\n",
"20160525 13:30:00.080 98.55 98.56\n",
"20160525 13:30:00.084 98.55 98.56\n",
"20160525 13:30:00.086 98.55 98.63\n",
"20160525 13:30:00.088 98.65 98.63\n",
"20160525 13:30:00.089 98.63 98.63\n",
"20160525 13:30:00.104 98.63 98.63\n",
"20160525 13:30:00.104 98.62 98.63\n",
"20160525 13:30:00.105 98.62 98.63\n",
"20160525 13:30:00.107 98.62 98.63\n",
"20160525 13:30:00.115 98.62 98.63\n",
"20160525 13:30:00.118 98.62 98.63\n",
"20160525 13:30:00.128 98.62 98.63\n",
"20160525 13:30:00.129 98.62 98.63\n",
"20160525 13:30:00.129 98.61 98.63\n",
"20160525 13:30:00.130 98.61 98.63\n",
"20160525 13:30:00.131 98.61 98.62\n",
"20160525 13:30:00.135 98.61 98.62\n",
"20160525 13:30:00.136 98.61 98.62\n",
"20160525 13:30:00.144 98.61 98.62\n",
"20160525 13:30:00.145 98.61 98.62\n",
"20160525 13:30:00.145 98.61 98.63\n",
"20160525 13:30:00.145 98.60 98.63"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"idf.loc['AAPL']"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"idf.sort_index(inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"time\n",
"20160525 13:30:00.075 98.55\n",
"20160525 13:30:00.076 98.55\n",
"20160525 13:30:00.080 98.55\n",
"20160525 13:30:00.084 98.55\n",
"20160525 13:30:00.086 98.55\n",
"20160525 13:30:00.088 98.65\n",
"20160525 13:30:00.089 98.63\n",
"20160525 13:30:00.104 98.63\n",
"20160525 13:30:00.104 98.62\n",
"20160525 13:30:00.105 98.62\n",
"20160525 13:30:00.107 98.62\n",
"20160525 13:30:00.115 98.62\n",
"20160525 13:30:00.118 98.62\n",
"20160525 13:30:00.128 98.62\n",
"20160525 13:30:00.129 98.62\n",
"20160525 13:30:00.129 98.61\n",
"20160525 13:30:00.130 98.61\n",
"20160525 13:30:00.131 98.61\n",
"20160525 13:30:00.135 98.61\n",
"20160525 13:30:00.136 98.61\n",
"20160525 13:30:00.144 98.61\n",
"20160525 13:30:00.145 98.61\n",
"20160525 13:30:00.145 98.61\n",
"20160525 13:30:00.145 98.60\n",
"Name: bid, dtype: float64"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Prima selezione parziale: รจ ambigua! (sarebbe idf.loc[('AAPL', slice(None, None, None), 'bid'])\n",
"idf.loc['AAPL', 'bid']"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"ticker time \n",
"AAPL 20160525 13:30:00.075 98.55\n",
" 20160525 13:30:00.076 98.55\n",
" 20160525 13:30:00.080 98.55\n",
" 20160525 13:30:00.084 98.55\n",
" 20160525 13:30:00.086 98.55\n",
" 20160525 13:30:00.088 98.65\n",
" 20160525 13:30:00.089 98.63\n",
" 20160525 13:30:00.104 98.63\n",
" 20160525 13:30:00.104 98.62\n",
" 20160525 13:30:00.105 98.62\n",
" 20160525 13:30:00.107 98.62\n",
" 20160525 13:30:00.115 98.62\n",
" 20160525 13:30:00.118 98.62\n",
" 20160525 13:30:00.128 98.62\n",
" 20160525 13:30:00.129 98.62\n",
" 20160525 13:30:00.129 98.61\n",
" 20160525 13:30:00.130 98.61\n",
" 20160525 13:30:00.131 98.61\n",
" 20160525 13:30:00.135 98.61\n",
" 20160525 13:30:00.136 98.61\n",
" 20160525 13:30:00.144 98.61\n",
" 20160525 13:30:00.145 98.61\n",
" 20160525 13:30:00.145 98.61\n",
" 20160525 13:30:00.145 98.60\n",
"Name: bid, dtype: float64"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Cosa fa pandas (ma non ambigua)\n",
"idf.loc[('AAPL',slice(None)), 'bid']"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"idf = idf[~idf.index.duplicated()]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Manipolazione"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" | \n",
" bid | \n",
" ask | \n",
"
\n",
" \n",
" ticker | \n",
" time | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" AAPL | \n",
" 20160525 13:30:00.075 | \n",
" 98.55 | \n",
" 98.56 | \n",
"
\n",
" \n",
" 20160525 13:30:00.076 | \n",
" 98.55 | \n",
" 98.56 | \n",
"
\n",
" \n",
" 20160525 13:30:00.080 | \n",
" 98.55 | \n",
" 98.56 | \n",
"
\n",
" \n",
" 20160525 13:30:00.084 | \n",
" 98.55 | \n",
" 98.56 | \n",
"
\n",
" \n",
" 20160525 13:30:00.086 | \n",
" 98.55 | \n",
" 98.63 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
"\n",
" bid ask\n",
"ticker time \n",
"AAPL 20160525 13:30:00.075 98.55 98.56\n",
" 20160525 13:30:00.076 98.55 98.56\n",
" 20160525 13:30:00.080 98.55 98.56\n",
" 20160525 13:30:00.084 98.55 98.56\n",
" 20160525 13:30:00.086 98.55 98.63"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"idf.head()"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"idf.loc['AAPL'].plot()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}