Возвращайте DataFrame из функции python, а не из списка, используя pandas 'pd.read_sql_query - PullRequest
0 голосов
/ 14 января 2020

Я изо всех сил пытаюсь понять, почему это возвращает список, содержащий DataFrame, а не только DataFrame. Что-то не так с кодом или способ вернуть только DataFrame? Он работает как положено, если не помещен в функцию.

import sqlite3
import pandas as pd

def get_tbl_info(db ='MyDatabase', table ='Measurements'):

        database = "/Users/Mary/Documents/Database/{DB}.db"..format(DB=db)

        conn = sqlite3.connect(database)

        tbl_info_command = "PRAGMA TABLE_INFO({table});".format(table=table)
        result_all = pd.read_sql_query(tbl_info_command,conn)
        print(type(result_all))
        return [result_all]



out = get_tbl_info()
print(type(out))

дает:

<class 'pandas.core.frame.DataFrame'>
<class 'list'>

1 Ответ

2 голосов
/ 14 января 2020

Потому что когда вы заключаете переменную в скобки [ ], Python понимает ее как "хорошо, поместите эту переменную в список" . Просто замените return вашей функции на:

return result_all

Это должно работать должным образом, иначе ваша функция может просто вернуть ваш фрейм данных напрямую

return pd.read_sql_query(tbl_info_command,conn)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...