@Override
  public InterpreterResult interpret(String st, InterpreterContext context)
      throws InterpreterException {
    LOGGER.info("Running SQL query: '{}' over Pandas DataFrame", st);
    return pythonInterpreter.interpret(
        "z.show(pysqldf('" + st.trim() + "'))", context);
  }
@Test
  public void showDataFrame() throws IOException, InterpreterException {
    pythonInterpreter.interpret("import pandas as pd", context);
    pythonInterpreter.interpret("import numpy as np", context);

    // given a Pandas DataFrame with an index and non-text data
    pythonInterpreter.interpret(
        "index = pd.Index([10, 11, 12, 13], name='index_name')", context);
    pythonInterpreter.interpret(
        "d1 = {1 : [np.nan, 1, 2, 3], 'two' : [3., 4., 5., 6.7]}", context);
    InterpreterResult ret = pythonInterpreter.interpret(
        "df1 = pd.DataFrame(d1, index=index)", context);
    assertEquals(InterpreterResult.Code.SUCCESS, ret.code(), ret.message().toString());

    // when
    context = getInterpreterContext();
    ret = pythonInterpreter.interpret("z.show(df1, show_index=True)", context);

    // then
    assertEquals(InterpreterResult.Code.SUCCESS, ret.code(), context.out.toString());
    assertEquals(Type.TABLE,
        context.out.toInterpreterResultMessage().get(0).getType(), context.out.toString());
    assertTrue(context.out.toString().contains("index_name"));
    assertTrue(context.out.toString().contains("nan"));
    assertTrue(context.out.toString().contains("6.7"));
  }