﻿ Pandas: Plot the volatility over a period of time of a stock price - w3resource

# Pandas: Plot the volatility over a period of time of a stock price

## Pandas: Plotting Exercise-18 with Solution

Write a Pandas program to plot the volatility over a period of time of Alphabet Inc. stock price between two specific dates.

Use the alphabet_stock_data.csv file to extract data.

pct_change() function computes the percentage change from the immediately previous row by default. This is useful in comparing the percentage of change in a time series of elements.

alphabet_stock_data:

alphabet_stock_data Table

Date Open High Low Close Adj Close Volume
2020-04-01 1122 1129.689941 1097.449951 1105.619995 1105.619995 2343100
2020-04-02 1098.26001 1126.859985 1096.400024 1120.839966 1120.839966 1964900
2020-04-03 1119.015015 1123.540039 1079.810059 1097.880005 1097.880005 2313400
2020-04-06 1138 1194.660034 1130.939941 1186.920044 1186.920044 2664700
... ... ... ... ... ... ...
... ... ... ... ... ... ...
2020-09-29 1470.390015 1476.662964 1458.805054 1469.329956 1469.329956 978200
2020-09-30 1466.800049 1489.75 1459.880005 1469.599976 1469.599976 1700600

Sample Solution:

Python Code :

``````import pandas as pd
import matplotlib.pyplot as plt
start_date = pd.to_datetime('2020-4-1')
end_date = pd.to_datetime('2020-9-30')
df['Date'] = pd.to_datetime(df['Date'])
new_df = (df['Date']>= start_date) & (df['Date']<= end_date)
df1 = df.loc[new_df]
df2 = df1[['Date', 'Close']]
df3 = df2.set_index('Date')
data_filled = df3.asfreq('D', method='ffill')
data_returns = data_filled.pct_change()
data_std = data_returns.rolling(window=30, min_periods=30).std()
plt.figure(figsize=(20,20))
data_std.plot();
plt.suptitle('Volatility over a period of time  of Alphabet Inc. stock price,\n01-04-2020 to 30-09-2020', fontsize=12, color='black')
plt.grid(True)
plt.show()
``````

Sample Output:

```
```

Python Code Editor:

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

What is the difficulty level of this exercise?

Test your Python skills with w3resource's quiz

﻿

## Python: Tips of the Day

Merging two dicts in Python 3.5+ with a single expression

Example:

```# How to merge two dictionaries
# in Python 3.5+

x = {'p': 1, 'q': 3}
y = {'q': 5, 'r': 8}

z = {**x, **y}

z
{'r': 4, 'p': 1, 'q': 3}

z = dict(x, **y)
print(z)
```

Output:

```{'p': 1, 'q': 5, 'r': 8}
```