import requests
from bs4 import BeautifulSoup
import pandas as pd
import matplotlib.pyplot as plt
plt.style.use('ggplot')
url = "https://www.google.com/finance/historical?cid=207437&startdate=Jan%201%2C%201971&enddate=Jul%201%2C%202017&start={0}&num=30"
how_many_pages=3
start=0
for i in range(how_many_pages):
    new_url = url.format(start)
    page = requests.get(new_url)
    soup = BeautifulSoup(page.content, "lxml")
    table = soup.find_all('table', class_='gf-table historical_price')[0]
    columns_header = [th.getText() for th in table.findAll('tr')[0].findAll('th')]
    data_rows=table.findAll('tr')[1:]
    data=[[td.getText() for td in data_rows[i].findAll(['td'])] for i in range(len(data_rows))]
    if start == 0:
        final_df = pd.DataFrame(data, columns=columns_header)
    else:
        df = pd.DataFrame(data, columns=columns_header)
        final_df = pd.concat([final_df, df],axis=0)
    start += 30
    final_df.to_csv('nse_data.csv', sep='\t', encoding='utf-8')
final_df.columns = ['Date']
final_df['Date'] = pd.to_datetime(df['Date'], format='%Y-%m-%d', utc=True)
df.plot(x='Date', y='Close')
plt.savefig('foo.png')
The data downloaded is in the following format
    "Date
"   "Open
"   "High
"   "Low
"   "Close
"   "Volume
"
0   "Jun 30, 2017
"   "9,478.50
"   "9,535.80
"   "9,448.75
"   "9,520.90
"   "-
"
1   "Jun 29, 2017
"   "9,522.95
"   "9,575.80
"   "9,493.80
"   "9,504.10
"   "-
For the time being I only want to plot Date (on X-axis) against Close  (on Y-axis)
However I am getting the error
ValueError: Length mismatch: Expected axis has 6 elements, new values have 1 elements
 
    