## What will we cover?

In this tutorial we will show how to calculate the** Stochastic Oscillator** with **Pandas** **DataFrames**.

## Step 1: Retrieve the Data from CSV file with Pandas DataFrames

We first need to read the data from a CSV file into a DataFrame. You can get the CSV file from **here** or directly from** Yahoo! Finance**.

Alternatively you can you **PandasDataframes** as described in this tutorial.

```
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib notebook
data = pd.read_csv("AAPL.csv", index_col=0, parse_dates=True)
```

## Step 2: Calculate the Stochastic Oscillator with Pandas DataFrames

The **Stochastic Oscillator** is defined as follows.

**14-high**: Maximum of last 14 trading days**14-low**: Minimum of last 14 trading days**%K**:**(Last Close – 14-low)*100 / (14-high – 14-low)****%D**: Simple Moving Average of**%K**

That can be done as follows.

```
high14 = data['High'].rolling(14).max()
low14 = data['Low'].rolling(14).min()
data['%K'] = (data['Close'] - low14)*100/(high14 - low14)
data['%D'] = data['%K'].rolling(3).mean()
```

Notice, we only keep the **%K** and **%D**. The **high14** and **low14** are temporary variables to make our calculations easier to read.

## Step 3: Visualize the Stochastic Oscillator with Matplotlib

To visualize it.

```
fig, ax = plt.subplots()
data[['%K', '%D']].loc['2020-11-01':].plot(ax=ax)
ax.axhline(80, c='r', alpha=0.3)
ax.axhline(20, c='r', alpha=0.3)
data['Close'].loc['2020-11-01':].plot(ax=ax, alpha=0.3, secondary_y=True)
```

Resulting in the following.

## Want to learn more?

This is part of a 2-hour full video course in 8 parts about Technical Analysis with Python.

If you are serious about learning **Python for Finance check out this course**.

- Learn
**Python for Finance**with pandas and NumPy. **21 hours**of video in over**180 lectures**.*“Excellent course for anyone trying to learn to code and invest.”*–**Lorenzo B**.

## Learn Python

**Learn Python A BEGINNERS GUIDE TO PYTHON**

- 70 pages to get you started on your journey to
**master Python**. - How to install your setup with
**Anaconda**. - Written
**description**and introduction to all concepts. **Jupyter Notebooks**prepared for 17 projects.

**Python 101: A CRASH COURSE**

- How to
**get started**with this 8 hours.**Python 101: A CRASH COURSE** **Best practices**for learning Python.- How to download the
**material**to follow along and create projects. - A chapter for each lesson with a
**description**,**code****snippets**for easy reference, and links to a**lesson video**.

## Expert Data Science Blueprint

**Expert Data Science Blueprint**

- Master the Data Science Workflow for actionable data insights.
- How to download the material to follow along and create projects.
- A chapter to each lesson with a Description, Learning Objective, and link to the lesson video.

## Machine Learning

**Machine Learning – The Simple Path to Mastery**

- How to get started with Machine Learning.
- How to download the material to follow along and make the projects.
- One chapter for each lesson with a Description, Learning Objectives, and link to the lesson video.