skip to Main Content

I want to hide this warning UserWarning: pandas only support SQLAlchemy connectable(engine/connection) ordatabase string URI or sqlite3 DBAPI2 connectionother DBAPI2 objects are not tested, please consider using SQLAlchemy and I’ve tried

import warnings
warnings.simplefilter(action='ignore', category=UserWarning)

import pandas

but the warning still shows.

My python script read data from databases. I’m using pandas.read_sql for SQL queries and psycopg2 for db connections.

Also I’d like to know which line triggers the warning.

3

Answers


  1. Chosen as BEST ANSWER

    It seems I cannot disable the pandas warning, so I used SQLAlchemy (as the warning message wants me to do so) to wrap the psycopg2 connection.

    I followed the instruction here: SQLAlchemy for psycopg2 documentation

    A simple example:

    import psycopg2
    import sqlalchemy
    import pandas as pd
    
    conn = sqlalchemy.create_engine(f"postgresql+psycopg2://{user}:{pw}@{host}:{port}/{db}")
    
    query = "select count(*) from my_table"
    
    pd.read_sql(query, conn)
    

    The warning doesn't get triggered anymore.


  2. The warnings that you’re filtering right now are warnings of type FutureWarning. The warning that you’re getting is of type UserWarning, so you should change the warning category to UserWarning. I hope this answers your question regarding why pandas is giving that warning.

    Login or Signup to reply.
  3. Using the following worked well for me:

    import warnings
    
    warnings.filterwarnings('ignore').
    

    I am using pandas with pyodbc and was previously getting the same warning.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search