Error in DataTable Tutorial Example

When I run the Uploading data DataTable example, I get the following error:

IndexError: index 0 is out of bounds for axis 0 with size 0

But on the Browser, everything seems to be fine :crazy_face: . It’s very annoying, because, I’m a beginner and I don’t know how handle this.

I just run the example working on the tutorial example:

# -*- coding: utf-8 -*-
import base64
import io
import dash
from dash.dependencies import Input, Output, State
import dash_core_components as dcc
import dash_html_components as html
import dash_table
import pandas as pd

external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']

app = dash.Dash(__name__, external_stylesheets=external_stylesheets)

app.layout = html.Div([
   dcc.Upload(
       id='datatable-upload',
       children=html.Div([
           'Drag and Drop or ',
           html.A('Select Files')
       ]),
       style={
           'width': '100%', 'height': '60px', 'lineHeight': '60px',
           'borderWidth': '1px', 'borderStyle': 'dashed',
           'borderRadius': '5px', 'textAlign': 'center', 'margin': '10px'
       },
   ),
   dash_table.DataTable(id='datatable-upload-container'),
   dcc.Graph(id='datatable-upload-graph')
])


def parse_contents(contents, filename):
   content_type, content_string = contents.split(',')
   decoded = base64.b64decode(content_string)
   if 'csv' in filename:
       # Assume that the user uploaded a CSV file
       return pd.read_csv(
           io.StringIO(decoded.decode('utf-8')))
   elif 'xls' in filename:
       # Assume that the user uploaded an excel file
       return pd.read_excel(io.BytesIO(decoded))


@app.callback(Output('datatable-upload-container', 'data'),
             [Input('datatable-upload', 'contents')],
             [State('datatable-upload', 'filename')])
def update_output(contents, filename):
   if contents is None:
       return [{}]
   df = parse_contents(contents, filename)
   return df.to_dict('records')


@app.callback(Output('datatable-upload-graph', 'figure'),
             [Input('datatable-upload-container', 'data')])
def display_graph(rows):
   df = pd.DataFrame(rows)
   return {
       'data': [{
           'x': df[df.columns[0]],
           'y': df[df.columns[1]],
           'type': 'bar'
       }]
   }


if __name__ == '__main__':
   app.run_server(debug=True)

Thank by advance for your help!

Charly