Отличие функций pandas.io от pandas
Объясните пожалуйста отличие pandas.io. от pandas?
Например, чем отличается функция pandas.io.sql.read_sql() от pandas.read_sql(). Что в итоге лучше использовать и почему?
Ответы (1 шт):
Смотрим исходники библиотеки 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(...)