{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Examples**
\n",
"**Series**"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 80\n",
"1 81\n",
"2 75\n",
"dtype: int64"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"s = pd.Series([80, 81, 75])\n",
"s"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
""
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 NaN\n",
"1 0.012500\n",
"2 -0.074074\n",
"dtype: float64"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"s.pct_change()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 NaN\n",
"1 NaN\n",
"2 -0.0625\n",
"dtype: float64"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"s.pct_change(periods=2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"See the percentage change in a Series where filling NAs with last valid observation forward to next valid."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 80.0\n",
"1 81.0\n",
"2 NaN\n",
"3 75.0\n",
"dtype: float64"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"s = pd.Series([80, 81, None, 75])\n",
"s"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 NaN\n",
"1 0.012500\n",
"2 0.000000\n",
"3 -0.074074\n",
"dtype: float64"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"s.pct_change(fill_method='ffill')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**DataFrame**
\n",
"Percentage change in French franc, Deutsche Mark, and Italian lira from 2000-01-01 to 2000-03-01."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" FR | \n",
" GR | \n",
" IT | \n",
"
\n",
" \n",
" \n",
" \n",
" 2000-01-01 | \n",
" 5.0505 | \n",
" 2.7246 | \n",
" 904.74 | \n",
"
\n",
" \n",
" 2000-02-01 | \n",
" 5.0963 | \n",
" 2.7482 | \n",
" 910.01 | \n",
"
\n",
" \n",
" 2000-03-01 | \n",
" 5.3149 | \n",
" 2.8519 | \n",
" 960.13 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" FR GR IT\n",
"2000-01-01 5.0505 2.7246 904.74\n",
"2000-02-01 5.0963 2.7482 910.01\n",
"2000-03-01 5.3149 2.8519 960.13"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = pd.DataFrame({\n",
" 'FR': [5.0505, 5.0963, 5.3149],\n",
" 'GR': [2.7246, 2.7482, 2.8519],\n",
" 'IT': [904.74, 910.01, 960.13]},\n",
" index=['2000-01-01', '2000-02-01', '2000-03-01'])\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" FR | \n",
" GR | \n",
" IT | \n",
"
\n",
" \n",
" \n",
" \n",
" 2000-01-01 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" 2000-02-01 | \n",
" 0.009068 | \n",
" 0.008662 | \n",
" 0.005825 | \n",
"
\n",
" \n",
" 2000-03-01 | \n",
" 0.042894 | \n",
" 0.037734 | \n",
" 0.055076 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" FR GR IT\n",
"2000-01-01 NaN NaN NaN\n",
"2000-02-01 0.009068 0.008662 0.005825\n",
"2000-03-01 0.042894 0.037734 0.055076"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.pct_change()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Percentage of change in GOOG and APPL stock volume. Shows computing the percentage
\n",
"change between columns."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" 2019 | \n",
" 2018 | \n",
" 2017 | \n",
"
\n",
" \n",
" \n",
" \n",
" GOOG | \n",
" 1869950 | \n",
" 1600923 | \n",
" 1471819 | \n",
"
\n",
" \n",
" APPL | \n",
" 32586265 | \n",
" 42912316 | \n",
" 42403351 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" 2019 2018 2017\n",
"GOOG 1869950 1600923 1471819\n",
"APPL 32586265 42912316 42403351"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = pd.DataFrame({\n",
" '2019': [1869950, 32586265],\n",
" '2018': [1600923, 42912316],\n",
" '2017': [1471819, 42403351]},\n",
" index=['GOOG', 'APPL'])\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" 2019 | \n",
" 2018 | \n",
" 2017 | \n",
"
\n",
" \n",
" \n",
" \n",
" GOOG | \n",
" NaN | \n",
" -0.143869 | \n",
" -0.080643 | \n",
"
\n",
" \n",
" APPL | \n",
" NaN | \n",
" 0.316884 | \n",
" -0.011861 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" 2019 2018 2017\n",
"GOOG NaN -0.143869 -0.080643\n",
"APPL NaN 0.316884 -0.011861"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.pct_change(axis='columns')"
]
}
],
"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.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}