Отличие функций pandas.io от pandas

Объясните пожалуйста отличие pandas.io. от pandas? Например, чем отличается функция pandas.io.sql.read_sql() от pandas.read_sql(). Что в итоге лучше использовать и почему?


Ответы (1 шт):

Автор решения: CrazyElf

Смотрим исходники библиотеки Pandas. В частности, файл pandas/__init__.py:

from pandas.io.api import (
    ...
    # sql
    read_sql,
    ...
)

То есть на самом деле, когда вы обращаетесь к pandas.read_sql, то обращение идёт к pandas.io.api.read_sql. Хорошо, смотрим pandas/io/api.py:

from pandas.io.sql import (
    read_sql,
    read_sql_query,
    read_sql_table,
)

То есть это на самом деле обращение к pandas.io.sql.read_sql. А вот уже в pandas/io/sql.py действительно лежит метод read_sql:

def read_sql(
    sql,
    con,
...

Таким образом, нет никакой разницы, это обращение к одной и той же функции, только оформленное по-разному. Нет никакого смысла лазить вглубь субпакетов pandas.io и т.п. все нужные функции обычно вынесены "наружу", в корень пакета pandas и обращаться нужно обычно оттуда, как и написано в документации к Pandas:

import pandas as pd

df = pd.read_sql(...)
→ Ссылка