Files
pandas-ta/examples/Speed_Test.ipynb
T

1204 lines
41 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"id": "3dbbe3ae-2e85-46a1-b4c7-5bc942978bb6",
"metadata": {},
"source": [
"# Indicator Speed Test\n",
"\n",
"This Notebook shows the **Indicator Speed** with and without TA Lib\n",
"* Results may vary if ```vectorbt``` or ```numba``` is installed.\n",
"* These values are based on a M1 Macbook with 16GB Memory."
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "63c0934c-9bb3-4a3e-a65a-9f142aa346f9",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Package Versions:\n",
"Pandas TA v0.3.54b0\n",
"Numba v0.55.1\n",
"talib v0.4.21\n"
]
}
],
"source": [
"from importlib.util import find_spec\n",
"\n",
"from numpy import version as numpy_version\n",
"from pandas import IndexSlice, concat, read_csv\n",
"from pandas import IndexSlice as idx\n",
"import pandas_ta as ta\n",
"\n",
"print(\"Package Versions:\")\n",
"print(f\"Pandas TA v{ta.version}\")\n",
"\n",
"has_numba = find_spec(\"numba\") is not None\n",
"if has_numba:\n",
" from numba import __version__ as numba_version\n",
" print(f\"Numba v{numba_version}\")\n",
" \n",
"if find_spec(\"talib\") is not None:\n",
" from talib import __version__ as tal_version\n",
" print(f\"talib v{tal_version}\")\n",
"\n",
"from pandas import read_csv\n",
"from pandas import DatetimeIndex as dti\n",
"%matplotlib inline"
]
},
{
"cell_type": "markdown",
"id": "68531949-cca4-47f5-89e7-00d77855e8a3",
"metadata": {},
"source": [
"### Fetch Sample Data"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "efe05268-b2a1-4beb-9b7d-280e374d8d50",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[+] yf | SPY(1260, 7): 3214.8837 ms (3.2149 s)\n"
]
}
],
"source": [
"_df = ta.df.ta.ticker(\"SPY\", period=\"5y\", timed=True)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "3f7ad492-a70c-4367-a60e-92bd186f1afb",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(1260, 7)"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = _df.copy()\n",
"df.shape"
]
},
{
"cell_type": "markdown",
"id": "ea75457d-9b95-41ae-9205-23b822c3a3d8",
"metadata": {},
"source": [
"### If ```numba``` installed, prep @njit functions"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "38176845-652e-43dc-b426-12eaa9952c5f",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"============================================================\n",
" Slowest Indicators\n",
" Observations: 150\n",
"============================================================\n",
" ms secs\n",
"Indicator \n",
"alligator 1545.3249 1.54532\n",
"atrts 397.8743 0.39787\n",
"reflex 196.2966 0.19630\n",
"trendflex 162.9574 0.16296\n",
"td_seq 113.5860 0.11359\n",
"... ... ...\n",
"mom 0.1823 0.00018\n",
"tsignals 0.0015 0.00000\n",
"short_run 0.0018 0.00000\n",
"long_run 0.0012 0.00000\n",
"xsignals 0.0016 0.00000\n",
"\n",
"[146 rows x 2 columns]\n",
"\n",
"============================================================\n",
"Time Stats:\n",
" ms secs\n",
"min 0.001200 0.000000\n",
"50% 1.167250 0.001170\n",
"mean 19.846779 0.019847\n",
"max 1545.324900 1.545320\n",
"total 2897.629700 2.897610\n",
"\n",
"============================================================\n",
"\n"
]
}
],
"source": [
"if has_numba:\n",
" ta.speed_test(df.iloc[-150:], talib=False)"
]
},
{
"cell_type": "markdown",
"id": "4ce3fb06-5ca6-44e2-a8f1-6c35af7c0c23",
"metadata": {},
"source": [
"## Performance **without** TA Lib"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "6404c4d7-3318-4749-a2b7-c5dd9c5e3f59",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"[+] aberration: 1.1934 ms (0.0012 s)\n",
"[+] accbands: 1.3275 ms (0.0013 s)\n",
"[+] ad: 0.9927 ms (0.0010 s)\n",
"[+] adosc: 2.0405 ms (0.0020 s)\n",
"[+] adx: 3.3097 ms (0.0033 s)\n",
"[+] alligator: 220.9520 ms (0.2210 s)\n",
"[+] alma: 0.6661 ms (0.0007 s)\n",
"[+] amat: 3.1515 ms (0.0032 s)\n",
"[+] ao: 0.5532 ms (0.0006 s)\n",
"[+] aobv: 5.7468 ms (0.0057 s)\n",
"[+] apo: 0.8981 ms (0.0009 s)\n",
"[+] aroon: 7.2886 ms (0.0073 s)\n",
"[+] atr: 1.6734 ms (0.0017 s)\n",
"[+] atrts: 2.1999 ms (0.0022 s)\n",
"[+] bbands: 1.6733 ms (0.0017 s)\n",
"[+] bias: 0.6645 ms (0.0007 s)\n",
"[+] bop: 0.8861 ms (0.0009 s)\n",
"[+] brar: 4.2863 ms (0.0043 s)\n",
"[+] cci: 15.9824 ms (0.0160 s)\n",
"[+] cdl_pattern: 10.7079 ms (0.0107 s)\n",
"[+] cdl_z: 1.7786 ms (0.0018 s)\n",
"[+] cfo: 0.4038 ms (0.0004 s)\n",
"[+] cg: 5.6990 ms (0.0057 s)\n",
"[+] chop: 1.3866 ms (0.0014 s)\n",
"[+] cksp: 1.7014 ms (0.0017 s)\n",
"[+] cmf: 1.2351 ms (0.0012 s)\n",
"[+] cmo: 2.4472 ms (0.0024 s)\n",
"[+] coppock: 0.3521 ms (0.0004 s)\n",
"[+] cti: 0.1978 ms (0.0002 s)\n",
"[+] cube: 0.5798 ms (0.0006 s)\n",
"[+] decay: 0.7265 ms (0.0007 s)\n",
"[+] decreasing: 0.3314 ms (0.0003 s)\n",
"[+] dema: 1.0735 ms (0.0011 s)\n",
"[+] dm: 2.2631 ms (0.0023 s)\n",
"[+] donchian: 1.0483 ms (0.0010 s)\n",
"[+] dpo: 0.5014 ms (0.0005 s)\n",
"[+] ebsw: 40.3295 ms (0.0403 s)\n",
"[+] efi: 0.4365 ms (0.0004 s)\n",
"[+] ema: 0.4680 ms (0.0005 s)\n",
"[+] entropy: 0.8692 ms (0.0009 s)\n",
"[+] eom: 1.0560 ms (0.0011 s)\n",
"[+] er: 0.5839 ms (0.0006 s)\n",
"[+] eri: 0.7530 ms (0.0008 s)\n",
"[+] fisher: 10.0730 ms (0.0101 s)\n",
"[+] fwma: 2.5933 ms (0.0026 s)\n",
"[+] ha: 78.9096 ms (0.0789 s)\n",
"[+] hilo: 84.2305 ms (0.0842 s)\n",
"[+] hl2: 0.2878 ms (0.0003 s)\n",
"[+] hlc3: 0.3543 ms (0.0004 s)\n",
"[+] hma: 0.4175 ms (0.0004 s)\n",
"[+] hwc: 8.7230 ms (0.0087 s)\n",
"[+] hwma: 6.6251 ms (0.0066 s)\n",
"[+] ifisher: 0.6008 ms (0.0006 s)\n",
"[+] increasing: 0.3443 ms (0.0003 s)\n",
"[+] inertia: 4.5348 ms (0.0045 s)\n",
"[+] jma: 28.5384 ms (0.0285 s)\n",
"[+] kama: 16.0007 ms (0.0160 s)\n",
"[+] kc: 0.9843 ms (0.0010 s)\n",
"[+] kdj: 1.7305 ms (0.0017 s)\n",
"[+] kst: 1.9293 ms (0.0019 s)\n",
"[+] kurtosis: 0.3692 ms (0.0004 s)\n",
"[+] kvo: 3.7142 ms (0.0037 s)\n",
"[+] linreg: 13.2551 ms (0.0133 s)\n",
"[+] log_return: 0.2034 ms (0.0002 s)\n",
"[+] long_run: 0.0013 ms (0.0000 s)\n",
"[+] macd: 2.8142 ms (0.0028 s)\n",
"[+] mad: 14.8339 ms (0.0148 s)\n",
"[+] massi: 1.3622 ms (0.0014 s)\n",
"[+] mcgd: 2.3288 ms (0.0023 s)\n",
"[+] median: 0.7961 ms (0.0008 s)\n",
"[+] mfi: 4.2371 ms (0.0042 s)\n",
"[+] midpoint: 0.6487 ms (0.0006 s)\n",
"[+] midprice: 0.7317 ms (0.0007 s)\n",
"[+] mom: 0.1998 ms (0.0002 s)\n",
"[+] natr: 1.9175 ms (0.0019 s)\n",
"[+] nvi: 3.1174 ms (0.0031 s)\n",
"[+] obv: 2.3015 ms (0.0023 s)\n",
"[+] ohlc4: 0.4677 ms (0.0005 s)\n",
"[+] pdist: 1.2363 ms (0.0012 s)\n",
"[+] percent_return: 0.1922 ms (0.0002 s)\n",
"[+] pgo: 0.6081 ms (0.0006 s)\n",
"[+] ppo: 1.7576 ms (0.0018 s)\n",
"[+] psar: 111.5600 ms (0.1116 s)\n",
"[+] psl: 1.8368 ms (0.0018 s)\n",
"[+] pvi: 3.0967 ms (0.0031 s)\n",
"[+] pvo: 0.7764 ms (0.0008 s)\n",
"[+] pvol: 0.3023 ms (0.0003 s)\n",
"[+] pvr: 1.3837 ms (0.0014 s)\n",
"[+] pvt: 0.4049 ms (0.0004 s)\n",
"[+] pwma: 2.3160 ms (0.0023 s)\n",
"[+] qqe: 203.7224 ms (0.2037 s)\n",
"[+] qstick: 0.9084 ms (0.0009 s)\n",
"[+] quantile: 0.7640 ms (0.0008 s)\n",
"[+] reflex: 0.2181 ms (0.0002 s)\n",
"[+] remap: 0.1712 ms (0.0002 s)\n",
"[+] rma: 0.3508 ms (0.0004 s)\n",
"[+] roc: 0.4792 ms (0.0005 s)\n",
"[+] rsi: 2.7735 ms (0.0028 s)\n",
"[+] rsx: 10.2466 ms (0.0102 s)\n",
"[+] rvgi: 7.7346 ms (0.0077 s)\n",
"[+] rvi: 4.4438 ms (0.0044 s)\n",
"[+] short_run: 0.0015 ms (0.0000 s)\n",
"[+] sinwma: 10.7341 ms (0.0107 s)\n",
"[+] skew: 0.2976 ms (0.0003 s)\n",
"[+] slope: 0.2550 ms (0.0003 s)\n",
"[+] sma: 0.3979 ms (0.0004 s)\n",
"[+] smi: 1.1831 ms (0.0012 s)\n",
"[+] smma: 73.9506 ms (0.0740 s)\n",
"[+] squeeze: 3.5436 ms (0.0035 s)\n",
"[+] squeeze_pro: 5.0888 ms (0.0051 s)\n",
"[+] ssf: 0.1950 ms (0.0002 s)\n",
"[+] ssf3: 0.1759 ms (0.0002 s)\n",
"[+] stc: 25.0177 ms (0.0250 s)\n",
"[+] stdev: 0.4016 ms (0.0004 s)\n",
"[+] stoch: 2.1441 ms (0.0021 s)\n",
"[+] stochf: 1.9049 ms (0.0019 s)\n",
"[+] stochrsi: 1.4435 ms (0.0014 s)\n",
"[+] supertrend: 54.9402 ms (0.0549 s)\n",
"[+] swma: 2.4172 ms (0.0024 s)\n",
"[+] t3: 2.8430 ms (0.0028 s)\n",
"[+] td_seq: 999.4675 ms (0.9995 s)\n",
"[+] tema: 2.0117 ms (0.0020 s)\n",
"[+] thermo: 1.8119 ms (0.0018 s)\n",
"[+] tos_stdevall: 3.6279 ms (0.0036 s)\n",
"[+] trendflex: 0.2490 ms (0.0002 s)\n",
"[+] trima: 0.7651 ms (0.0008 s)\n",
"[+] trix: 2.3213 ms (0.0023 s)\n",
"[+] true_range: 1.5085 ms (0.0015 s)\n",
"[+] tsi: 2.3977 ms (0.0024 s)\n",
"[+] tsignals: 0.0017 ms (0.0000 s)\n",
"[+] ttm_trend: 1.8140 ms (0.0018 s)\n",
"[+] ui: 0.8805 ms (0.0009 s)\n",
"[+] uo: 3.1802 ms (0.0032 s)\n",
"[+] variance: 0.4477 ms (0.0004 s)\n",
"[+] vhf: 1.6950 ms (0.0017 s)\n",
"[+] vidya: 55.9338 ms (0.0559 s)\n",
"[+] vortex: 1.9768 ms (0.0020 s)\n",
"[+] vwap: 2.1248 ms (0.0021 s)\n",
"[+] vwma: 0.4802 ms (0.0005 s)\n",
"[+] wb_tsv: 4.8831 ms (0.0049 s)\n",
"[+] wcp: 0.4161 ms (0.0004 s)\n",
"[+] willr: 1.0852 ms (0.0011 s)\n",
"[+] wma: 11.8522 ms (0.0119 s)\n",
"[+] xsignals: 0.0019 ms (0.0000 s)\n",
"[+] zlma: 0.8534 ms (0.0009 s)\n",
"[+] zscore: 1.1000 ms (0.0011 s)\n",
"\n",
"============================================================\n",
" Slowest 10 Indicators [146]\n",
" Observations: 1260\n",
"============================================================\n",
" ms secs\n",
"Indicator \n",
"td_seq 999.4675 0.99947\n",
"alligator 220.9520 0.22095\n",
"qqe 203.7224 0.20372\n",
"psar 111.5600 0.11156\n",
"hilo 84.2305 0.08423\n",
"ha 78.9096 0.07891\n",
"smma 73.9506 0.07395\n",
"vidya 55.9338 0.05593\n",
"supertrend 54.9402 0.05494\n",
"ebsw 40.3295 0.04033\n",
"\n",
"============================================================\n",
"Time Stats:\n",
" ms secs\n",
"min 0.001300 0.000000\n",
"50% 1.476000 0.001475\n",
"mean 15.751361 0.015751\n",
"max 999.467500 0.999470\n",
"total 2299.698700 2.299680\n",
"\n",
"============================================================\n",
"\n"
]
}
],
"source": [
"pta_speedsdf, pta_statsdf = ta.speed_test(df, top=10, talib=False, stats=True, gradient=True, verbose=True)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "b3a753e2-9634-4cc8-9544-5c28c92130a3",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style type=\"text/css\">\n",
"#T_13ed2_row0_col0, #T_13ed2_row0_col1 {\n",
" background-color: #ff0000;\n",
" color: #f1f1f1;\n",
"}\n",
"#T_13ed2_row1_col0, #T_13ed2_row1_col1 {\n",
" background-color: #ffcf00;\n",
" color: #000000;\n",
"}\n",
"#T_13ed2_row2_col0, #T_13ed2_row2_col1 {\n",
" background-color: #ffd400;\n",
" color: #000000;\n",
"}\n",
"#T_13ed2_row3_col0, #T_13ed2_row3_col1 {\n",
" background-color: #ffec00;\n",
" color: #000000;\n",
"}\n",
"#T_13ed2_row4_col0, #T_13ed2_row4_col1 {\n",
" background-color: #fff400;\n",
" color: #000000;\n",
"}\n",
"#T_13ed2_row5_col0, #T_13ed2_row5_col1 {\n",
" background-color: #fff500;\n",
" color: #000000;\n",
"}\n",
"#T_13ed2_row6_col0, #T_13ed2_row6_col1 {\n",
" background-color: #fff700;\n",
" color: #000000;\n",
"}\n",
"#T_13ed2_row7_col0, #T_13ed2_row7_col1 {\n",
" background-color: #fffb00;\n",
" color: #000000;\n",
"}\n",
"#T_13ed2_row8_col0, #T_13ed2_row8_col1 {\n",
" background-color: #fffc00;\n",
" color: #000000;\n",
"}\n",
"#T_13ed2_row9_col0, #T_13ed2_row9_col1 {\n",
" background-color: #ffff00;\n",
" color: #000000;\n",
"}\n",
"</style>\n",
"<table id=\"T_13ed2_\">\n",
" <thead>\n",
" <tr>\n",
" <th class=\"blank level0\" >&nbsp;</th>\n",
" <th class=\"col_heading level0 col0\" >ms</th>\n",
" <th class=\"col_heading level0 col1\" >secs</th>\n",
" </tr>\n",
" <tr>\n",
" <th class=\"index_name level0\" >Indicator</th>\n",
" <th class=\"blank col0\" >&nbsp;</th>\n",
" <th class=\"blank col1\" >&nbsp;</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th id=\"T_13ed2_level0_row0\" class=\"row_heading level0 row0\" >td_seq</th>\n",
" <td id=\"T_13ed2_row0_col0\" class=\"data row0 col0\" >999.467500</td>\n",
" <td id=\"T_13ed2_row0_col1\" class=\"data row0 col1\" >0.999470</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_13ed2_level0_row1\" class=\"row_heading level0 row1\" >alligator</th>\n",
" <td id=\"T_13ed2_row1_col0\" class=\"data row1 col0\" >220.952000</td>\n",
" <td id=\"T_13ed2_row1_col1\" class=\"data row1 col1\" >0.220950</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_13ed2_level0_row2\" class=\"row_heading level0 row2\" >qqe</th>\n",
" <td id=\"T_13ed2_row2_col0\" class=\"data row2 col0\" >203.722400</td>\n",
" <td id=\"T_13ed2_row2_col1\" class=\"data row2 col1\" >0.203720</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_13ed2_level0_row3\" class=\"row_heading level0 row3\" >psar</th>\n",
" <td id=\"T_13ed2_row3_col0\" class=\"data row3 col0\" >111.560000</td>\n",
" <td id=\"T_13ed2_row3_col1\" class=\"data row3 col1\" >0.111560</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_13ed2_level0_row4\" class=\"row_heading level0 row4\" >hilo</th>\n",
" <td id=\"T_13ed2_row4_col0\" class=\"data row4 col0\" >84.230500</td>\n",
" <td id=\"T_13ed2_row4_col1\" class=\"data row4 col1\" >0.084230</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_13ed2_level0_row5\" class=\"row_heading level0 row5\" >ha</th>\n",
" <td id=\"T_13ed2_row5_col0\" class=\"data row5 col0\" >78.909600</td>\n",
" <td id=\"T_13ed2_row5_col1\" class=\"data row5 col1\" >0.078910</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_13ed2_level0_row6\" class=\"row_heading level0 row6\" >smma</th>\n",
" <td id=\"T_13ed2_row6_col0\" class=\"data row6 col0\" >73.950600</td>\n",
" <td id=\"T_13ed2_row6_col1\" class=\"data row6 col1\" >0.073950</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_13ed2_level0_row7\" class=\"row_heading level0 row7\" >vidya</th>\n",
" <td id=\"T_13ed2_row7_col0\" class=\"data row7 col0\" >55.933800</td>\n",
" <td id=\"T_13ed2_row7_col1\" class=\"data row7 col1\" >0.055930</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_13ed2_level0_row8\" class=\"row_heading level0 row8\" >supertrend</th>\n",
" <td id=\"T_13ed2_row8_col0\" class=\"data row8 col0\" >54.940200</td>\n",
" <td id=\"T_13ed2_row8_col1\" class=\"data row8 col1\" >0.054940</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_13ed2_level0_row9\" class=\"row_heading level0 row9\" >ebsw</th>\n",
" <td id=\"T_13ed2_row9_col0\" class=\"data row9 col0\" >40.329500</td>\n",
" <td id=\"T_13ed2_row9_col1\" class=\"data row9 col1\" >0.040330</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n"
],
"text/plain": [
"<pandas.io.formats.style.Styler at 0x1534f9fa0>"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pta_speedsdf"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "715520de-ad95-47a6-aa41-5f00d1b23eac",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>ms</th>\n",
" <th>secs</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>0.001300</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>1.476000</td>\n",
" <td>0.001475</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>15.751361</td>\n",
" <td>0.015751</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>999.467500</td>\n",
" <td>0.999470</td>\n",
" </tr>\n",
" <tr>\n",
" <th>total</th>\n",
" <td>2299.698700</td>\n",
" <td>2.299680</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" ms secs\n",
"min 0.001300 0.000000\n",
"50% 1.476000 0.001475\n",
"mean 15.751361 0.015751\n",
"max 999.467500 0.999470\n",
"total 2299.698700 2.299680"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pta_statsdf"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c7445703-cfe7-4b66-9d74-0712191080cb",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "942e3b8a-e3d9-480f-82b4-75d311b54cfa",
"metadata": {},
"source": [
"## Performance **with** TA Lib"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "b4757c9e-7a8f-4b82-93a9-8b3e4837a1d0",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"[+] aberration: 1.3793 ms (0.0014 s)\n",
"[+] accbands: 1.4010 ms (0.0014 s)\n",
"[+] ad: 0.5917 ms (0.0006 s)\n",
"[+] adosc: 0.5685 ms (0.0006 s)\n",
"[+] adx: 4.4657 ms (0.0045 s)\n",
"[+] alligator: 228.3049 ms (0.2283 s)\n",
"[+] alma: 0.5764 ms (0.0006 s)\n",
"[+] amat: 2.2803 ms (0.0023 s)\n",
"[+] ao: 0.5338 ms (0.0005 s)\n",
"[+] aobv: 2.8592 ms (0.0029 s)\n",
"[+] apo: 0.2774 ms (0.0003 s)\n",
"[+] aroon: 0.7200 ms (0.0007 s)\n",
"[+] atr: 0.4331 ms (0.0004 s)\n",
"[+] atrts: 0.6452 ms (0.0006 s)\n",
"[+] bbands: 1.1492 ms (0.0011 s)\n",
"[+] bias: 0.4188 ms (0.0004 s)\n",
"[+] bop: 0.5234 ms (0.0005 s)\n",
"[+] brar: 5.4278 ms (0.0054 s)\n",
"[+] cci: 0.4665 ms (0.0005 s)\n",
"[+] cdl_pattern: 11.3982 ms (0.0114 s)\n",
"[+] cdl_z: 1.8717 ms (0.0019 s)\n",
"[+] cfo: 0.4020 ms (0.0004 s)\n",
"[+] cg: 5.2331 ms (0.0052 s)\n",
"[+] chop: 1.3737 ms (0.0014 s)\n",
"[+] cksp: 1.6990 ms (0.0017 s)\n",
"[+] cmf: 1.3847 ms (0.0014 s)\n",
"[+] cmo: 0.2127 ms (0.0002 s)\n",
"[+] coppock: 0.3416 ms (0.0003 s)\n",
"[+] cti: 0.1917 ms (0.0002 s)\n",
"[+] cube: 0.6841 ms (0.0007 s)\n",
"[+] decay: 0.9472 ms (0.0009 s)\n",
"[+] decreasing: 0.3457 ms (0.0003 s)\n",
"[+] dema: 0.1865 ms (0.0002 s)\n",
"[+] dm: 0.5415 ms (0.0005 s)\n",
"[+] donchian: 1.0367 ms (0.0010 s)\n",
"[+] dpo: 0.4708 ms (0.0005 s)\n",
"[+] ebsw: 39.8448 ms (0.0398 s)\n",
"[+] efi: 0.4461 ms (0.0004 s)\n",
"[+] ema: 0.1732 ms (0.0002 s)\n",
"[+] entropy: 0.8852 ms (0.0009 s)\n",
"[+] eom: 1.0705 ms (0.0011 s)\n",
"[+] er: 0.6456 ms (0.0006 s)\n",
"[+] eri: 0.7156 ms (0.0007 s)\n",
"[+] fisher: 9.8860 ms (0.0099 s)\n",
"[+] fwma: 2.8592 ms (0.0029 s)\n",
"[+] ha: 78.0263 ms (0.0780 s)\n",
"[+] hilo: 85.0740 ms (0.0851 s)\n",
"[+] hl2: 0.5325 ms (0.0005 s)\n",
"[+] hlc3: 0.3987 ms (0.0004 s)\n",
"[+] hma: 0.4288 ms (0.0004 s)\n",
"[+] hwc: 9.6443 ms (0.0096 s)\n",
"[+] hwma: 7.2366 ms (0.0072 s)\n",
"[+] ifisher: 0.8933 ms (0.0009 s)\n",
"[+] increasing: 0.4210 ms (0.0004 s)\n",
"[+] inertia: 5.5727 ms (0.0056 s)\n",
"[+] jma: 28.8803 ms (0.0289 s)\n",
"[+] kama: 16.1582 ms (0.0162 s)\n",
"[+] kc: 1.0144 ms (0.0010 s)\n",
"[+] kdj: 1.8746 ms (0.0019 s)\n",
"[+] kst: 1.9180 ms (0.0019 s)\n",
"[+] kurtosis: 0.3783 ms (0.0004 s)\n",
"[+] kvo: 3.6907 ms (0.0037 s)\n",
"[+] linreg: 0.1978 ms (0.0002 s)\n",
"[+] log_return: 0.1905 ms (0.0002 s)\n",
"[+] long_run: 0.0010 ms (0.0000 s)\n",
"[+] macd: 0.4756 ms (0.0005 s)\n",
"[+] mad: 14.7116 ms (0.0147 s)\n",
"[+] massi: 0.7483 ms (0.0007 s)\n",
"[+] mcgd: 2.3136 ms (0.0023 s)\n",
"[+] median: 0.7458 ms (0.0007 s)\n",
"[+] mfi: 0.4803 ms (0.0005 s)\n",
"[+] midpoint: 0.1726 ms (0.0002 s)\n",
"[+] midprice: 0.2598 ms (0.0003 s)\n",
"[+] mom: 0.1576 ms (0.0002 s)\n",
"[+] natr: 0.3524 ms (0.0004 s)\n",
"[+] nvi: 3.0145 ms (0.0030 s)\n",
"[+] obv: 0.2855 ms (0.0003 s)\n",
"[+] ohlc4: 0.4319 ms (0.0004 s)\n",
"[+] pdist: 1.2352 ms (0.0012 s)\n",
"[+] percent_return: 0.1985 ms (0.0002 s)\n",
"[+] pgo: 0.6131 ms (0.0006 s)\n",
"[+] ppo: 0.5387 ms (0.0005 s)\n",
"[+] psar: 109.9897 ms (0.1100 s)\n",
"[+] psl: 1.8392 ms (0.0018 s)\n",
"[+] pvi: 2.9197 ms (0.0029 s)\n",
"[+] pvo: 0.7821 ms (0.0008 s)\n",
"[+] pvol: 0.2993 ms (0.0003 s)\n",
"[+] pvr: 1.3610 ms (0.0014 s)\n",
"[+] pvt: 0.4026 ms (0.0004 s)\n",
"[+] pwma: 2.5216 ms (0.0025 s)\n",
"[+] qqe: 200.0846 ms (0.2001 s)\n",
"[+] qstick: 0.6347 ms (0.0006 s)\n",
"[+] quantile: 0.8188 ms (0.0008 s)\n",
"[+] reflex: 0.2335 ms (0.0002 s)\n",
"[+] remap: 0.1762 ms (0.0002 s)\n",
"[+] rma: 0.3200 ms (0.0003 s)\n",
"[+] roc: 0.1771 ms (0.0002 s)\n",
"[+] rsi: 0.1747 ms (0.0002 s)\n",
"[+] rsx: 10.2025 ms (0.0102 s)\n",
"[+] rvgi: 7.4596 ms (0.0075 s)\n",
"[+] rvi: 4.7372 ms (0.0047 s)\n",
"[+] short_run: 0.0015 ms (0.0000 s)\n",
"[+] sinwma: 11.0507 ms (0.0111 s)\n",
"[+] skew: 0.4837 ms (0.0005 s)\n",
"[+] slope: 0.2922 ms (0.0003 s)\n",
"[+] sma: 0.1789 ms (0.0002 s)\n",
"[+] smi: 1.2504 ms (0.0013 s)\n",
"[+] smma: 72.6012 ms (0.0726 s)\n",
"[+] squeeze: 3.1763 ms (0.0032 s)\n",
"[+] squeeze_pro: 4.9525 ms (0.0050 s)\n",
"[+] ssf: 0.1910 ms (0.0002 s)\n",
"[+] ssf3: 0.1714 ms (0.0002 s)\n",
"[+] stc: 24.9705 ms (0.0250 s)\n",
"[+] stdev: 0.1919 ms (0.0002 s)\n",
"[+] stoch: 0.6312 ms (0.0006 s)\n",
"[+] stochf: 0.5892 ms (0.0006 s)\n",
"[+] stochrsi: 1.3907 ms (0.0014 s)\n",
"[+] supertrend: 54.8929 ms (0.0549 s)\n",
"[+] swma: 2.4607 ms (0.0025 s)\n",
"[+] t3: 0.1944 ms (0.0002 s)\n",
"[+] td_seq: 927.9966 ms (0.9280 s)\n",
"[+] tema: 0.2589 ms (0.0003 s)\n",
"[+] thermo: 1.7630 ms (0.0018 s)\n",
"[+] tos_stdevall: 3.3983 ms (0.0034 s)\n",
"[+] trendflex: 0.2196 ms (0.0002 s)\n",
"[+] trima: 0.1792 ms (0.0002 s)\n",
"[+] trix: 0.9243 ms (0.0009 s)\n",
"[+] true_range: 0.3720 ms (0.0004 s)\n",
"[+] tsi: 0.8120 ms (0.0008 s)\n",
"[+] tsignals: 0.0012 ms (0.0000 s)\n",
"[+] ttm_trend: 1.8103 ms (0.0018 s)\n",
"[+] ui: 0.9170 ms (0.0009 s)\n",
"[+] uo: 0.4060 ms (0.0004 s)\n",
"[+] variance: 0.1671 ms (0.0002 s)\n",
"[+] vhf: 1.2351 ms (0.0012 s)\n",
"[+] vidya: 50.3791 ms (0.0504 s)\n",
"[+] vortex: 1.7108 ms (0.0017 s)\n",
"[+] vwap: 2.0017 ms (0.0020 s)\n",
"[+] vwma: 0.4636 ms (0.0005 s)\n",
"[+] wb_tsv: 4.2580 ms (0.0043 s)\n",
"[+] wcp: 0.3908 ms (0.0004 s)\n",
"[+] willr: 0.3693 ms (0.0004 s)\n",
"[+] wma: 0.1618 ms (0.0002 s)\n",
"[+] xsignals: 0.0017 ms (0.0000 s)\n",
"[+] zlma: 0.3481 ms (0.0003 s)\n",
"[+] zscore: 0.3853 ms (0.0004 s)\n",
"\n",
"============================================================\n",
" Slowest 10 Indicators [146]\n",
" Observations[talib]: 1260\n",
"============================================================\n",
" ms secs\n",
"Indicator \n",
"td_seq 927.9966 0.92800\n",
"alligator 228.3049 0.22830\n",
"qqe 200.0846 0.20008\n",
"psar 109.9897 0.10999\n",
"hilo 85.0740 0.08507\n",
"ha 78.0263 0.07803\n",
"smma 72.6012 0.07260\n",
"supertrend 54.8929 0.05489\n",
"vidya 50.3791 0.05038\n",
"ebsw 39.8448 0.03984\n",
"\n",
"============================================================\n",
"Time Stats:\n",
" ms secs\n",
"min 0.001000 0.000000\n",
"50% 0.699850 0.000700\n",
"mean 14.608716 0.014609\n",
"max 927.996600 0.928000\n",
"total 2132.872500 2.132850\n",
"\n",
"============================================================\n",
"\n"
]
}
],
"source": [
"tal_speedsdf, tal_statsdf = ta.speed_test(df, top=10, talib=True, stats=True, gradient=True, verbose=True)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "3fe877e5-b1eb-4e68-9720-67a1e7ee6827",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style type=\"text/css\">\n",
"#T_3a1c8_row0_col0, #T_3a1c8_row0_col1 {\n",
" background-color: #ff0000;\n",
" color: #f1f1f1;\n",
"}\n",
"#T_3a1c8_row1_col0, #T_3a1c8_row1_col1 {\n",
" background-color: #ffc900;\n",
" color: #000000;\n",
"}\n",
"#T_3a1c8_row2_col0, #T_3a1c8_row2_col1 {\n",
" background-color: #ffd100;\n",
" color: #000000;\n",
"}\n",
"#T_3a1c8_row3_col0, #T_3a1c8_row3_col1 {\n",
" background-color: #ffeb00;\n",
" color: #000000;\n",
"}\n",
"#T_3a1c8_row4_col0, #T_3a1c8_row4_col1 {\n",
" background-color: #fff200;\n",
" color: #000000;\n",
"}\n",
"#T_3a1c8_row5_col0, #T_3a1c8_row5_col1 {\n",
" background-color: #fff400;\n",
" color: #000000;\n",
"}\n",
"#T_3a1c8_row6_col0, #T_3a1c8_row6_col1 {\n",
" background-color: #fff600;\n",
" color: #000000;\n",
"}\n",
"#T_3a1c8_row7_col0, #T_3a1c8_row7_col1 {\n",
" background-color: #fffb00;\n",
" color: #000000;\n",
"}\n",
"#T_3a1c8_row8_col0, #T_3a1c8_row8_col1 {\n",
" background-color: #fffc00;\n",
" color: #000000;\n",
"}\n",
"#T_3a1c8_row9_col0, #T_3a1c8_row9_col1 {\n",
" background-color: #ffff00;\n",
" color: #000000;\n",
"}\n",
"</style>\n",
"<table id=\"T_3a1c8_\">\n",
" <thead>\n",
" <tr>\n",
" <th class=\"blank level0\" >&nbsp;</th>\n",
" <th class=\"col_heading level0 col0\" >ms</th>\n",
" <th class=\"col_heading level0 col1\" >secs</th>\n",
" </tr>\n",
" <tr>\n",
" <th class=\"index_name level0\" >Indicator</th>\n",
" <th class=\"blank col0\" >&nbsp;</th>\n",
" <th class=\"blank col1\" >&nbsp;</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th id=\"T_3a1c8_level0_row0\" class=\"row_heading level0 row0\" >td_seq</th>\n",
" <td id=\"T_3a1c8_row0_col0\" class=\"data row0 col0\" >927.996600</td>\n",
" <td id=\"T_3a1c8_row0_col1\" class=\"data row0 col1\" >0.928000</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_3a1c8_level0_row1\" class=\"row_heading level0 row1\" >alligator</th>\n",
" <td id=\"T_3a1c8_row1_col0\" class=\"data row1 col0\" >228.304900</td>\n",
" <td id=\"T_3a1c8_row1_col1\" class=\"data row1 col1\" >0.228300</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_3a1c8_level0_row2\" class=\"row_heading level0 row2\" >qqe</th>\n",
" <td id=\"T_3a1c8_row2_col0\" class=\"data row2 col0\" >200.084600</td>\n",
" <td id=\"T_3a1c8_row2_col1\" class=\"data row2 col1\" >0.200080</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_3a1c8_level0_row3\" class=\"row_heading level0 row3\" >psar</th>\n",
" <td id=\"T_3a1c8_row3_col0\" class=\"data row3 col0\" >109.989700</td>\n",
" <td id=\"T_3a1c8_row3_col1\" class=\"data row3 col1\" >0.109990</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_3a1c8_level0_row4\" class=\"row_heading level0 row4\" >hilo</th>\n",
" <td id=\"T_3a1c8_row4_col0\" class=\"data row4 col0\" >85.074000</td>\n",
" <td id=\"T_3a1c8_row4_col1\" class=\"data row4 col1\" >0.085070</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_3a1c8_level0_row5\" class=\"row_heading level0 row5\" >ha</th>\n",
" <td id=\"T_3a1c8_row5_col0\" class=\"data row5 col0\" >78.026300</td>\n",
" <td id=\"T_3a1c8_row5_col1\" class=\"data row5 col1\" >0.078030</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_3a1c8_level0_row6\" class=\"row_heading level0 row6\" >smma</th>\n",
" <td id=\"T_3a1c8_row6_col0\" class=\"data row6 col0\" >72.601200</td>\n",
" <td id=\"T_3a1c8_row6_col1\" class=\"data row6 col1\" >0.072600</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_3a1c8_level0_row7\" class=\"row_heading level0 row7\" >supertrend</th>\n",
" <td id=\"T_3a1c8_row7_col0\" class=\"data row7 col0\" >54.892900</td>\n",
" <td id=\"T_3a1c8_row7_col1\" class=\"data row7 col1\" >0.054890</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_3a1c8_level0_row8\" class=\"row_heading level0 row8\" >vidya</th>\n",
" <td id=\"T_3a1c8_row8_col0\" class=\"data row8 col0\" >50.379100</td>\n",
" <td id=\"T_3a1c8_row8_col1\" class=\"data row8 col1\" >0.050380</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_3a1c8_level0_row9\" class=\"row_heading level0 row9\" >ebsw</th>\n",
" <td id=\"T_3a1c8_row9_col0\" class=\"data row9 col0\" >39.844800</td>\n",
" <td id=\"T_3a1c8_row9_col1\" class=\"data row9 col1\" >0.039840</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n"
],
"text/plain": [
"<pandas.io.formats.style.Styler at 0x1534e5f10>"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tal_speedsdf"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "bf35b59d-4253-41e3-895e-432a824789fb",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>ms</th>\n",
" <th>secs</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>0.001000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>0.699850</td>\n",
" <td>0.000700</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>14.608716</td>\n",
" <td>0.014609</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>927.996600</td>\n",
" <td>0.928000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>total</th>\n",
" <td>2132.872500</td>\n",
" <td>2.132850</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" ms secs\n",
"min 0.001000 0.000000\n",
"50% 0.699850 0.000700\n",
"mean 14.608716 0.014609\n",
"max 927.996600 0.928000\n",
"total 2132.872500 2.132850"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tal_statsdf"
]
},
{
"cell_type": "markdown",
"id": "c33c37fa-8062-4258-90ba-0c19d115698d",
"metadata": {},
"source": [
"# Comparisons"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "35454271-cee2-4bc0-84b7-4099730bb0ed",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(1260, 7)\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th></th>\n",
" <th>min</th>\n",
" <th>50%</th>\n",
" <th>mean</th>\n",
" <th>max</th>\n",
" <th>total</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">TA Lib</th>\n",
" <th>ms</th>\n",
" <td>0.0010</td>\n",
" <td>0.699850</td>\n",
" <td>14.608716</td>\n",
" <td>927.99660</td>\n",
" <td>2132.87250</td>\n",
" </tr>\n",
" <tr>\n",
" <th>secs</th>\n",
" <td>0.0000</td>\n",
" <td>0.000700</td>\n",
" <td>0.014609</td>\n",
" <td>0.92800</td>\n",
" <td>2.13285</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">Pandas TA</th>\n",
" <th>ms</th>\n",
" <td>0.0013</td>\n",
" <td>1.476000</td>\n",
" <td>15.751361</td>\n",
" <td>999.46750</td>\n",
" <td>2299.69870</td>\n",
" </tr>\n",
" <tr>\n",
" <th>secs</th>\n",
" <td>0.0000</td>\n",
" <td>0.001475</td>\n",
" <td>0.015751</td>\n",
" <td>0.99947</td>\n",
" <td>2.29968</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" min 50% mean max total\n",
"TA Lib ms 0.0010 0.699850 14.608716 927.99660 2132.87250\n",
" secs 0.0000 0.000700 0.014609 0.92800 2.13285\n",
"Pandas TA ms 0.0013 1.476000 15.751361 999.46750 2299.69870\n",
" secs 0.0000 0.001475 0.015751 0.99947 2.29968"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"print(df.shape)\n",
"compdf = concat([tal_statsdf, pta_statsdf], keys=[\"TA Lib\", \"Pandas TA\"], axis=1).T\n",
"compdf"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "167b311f-5180-4abf-95e7-1b41a96a6a1d",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th>Differences</th>\n",
" <th>min</th>\n",
" <th>50%</th>\n",
" <th>mean</th>\n",
" <th>max</th>\n",
" <th>total</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>ms</th>\n",
" <td>0.0003</td>\n",
" <td>0.776150</td>\n",
" <td>1.142645</td>\n",
" <td>71.47090</td>\n",
" <td>166.82620</td>\n",
" </tr>\n",
" <tr>\n",
" <th>secs</th>\n",
" <td>0.0000</td>\n",
" <td>0.000775</td>\n",
" <td>0.001143</td>\n",
" <td>0.07147</td>\n",
" <td>0.16683</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"Differences min 50% mean max total\n",
"ms 0.0003 0.776150 1.142645 71.47090 166.82620\n",
"secs 0.0000 0.000775 0.001143 0.07147 0.16683"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"diffdf = (tal_statsdf - pta_statsdf).abs().T\n",
"diffdf.columns.name = \"Differences\"\n",
"diffdf"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "27fbdb58-a425-402c-a6ca-37c71c717fc0",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.9.1"
}
},
"nbformat": 4,
"nbformat_minor": 5
}