Python 从sqlite到pandas获取信息行的最快/更好的方法

Python 从sqlite到pandas获取信息行的最快/更好的方法,python,sqlite,pandas,Python,Sqlite,Pandas,我有sqlite中的信息,我正在使用以下信息导入pandas: def get_data(db, id, limit, offset): cnx = sqlite3.connect('C:/Users/%s' %(db+'.db')) a = pd.read_sql_query("SELECT * FROM %s LIMIT %s OFFSET %d" %(id, limit, offset), cnx) return a cnx.close 为了获得整个数据库

我有sqlite中的信息,我正在使用以下信息导入pandas:

def get_data(db, id, limit, offset):
    cnx = sqlite3.connect('C:/Users/%s' %(db+'.db'))
    a = pd.read_sql_query("SELECT * FROM %s LIMIT %s OFFSET %d" %(id, limit, offset), cnx)
    return a
    cnx.close
为了获得整个数据库中等于某个代码的所有行,我将所有表导入到一个dataframe中,然后从那里进行搜索。这很好,但是有更好/更快的方法吗

id_import = ['id1_SH', 'id2_SH', 'id3_SH']
all_ids = []

for i in id_import:
    data = get_data(i, 5, 0)
    all_ids.append(data)
all_ids = pd.concat(all_ids)

all_ids

all_ids[all_ids.index.isin(['M4052542', 'M4009722'])]

我觉得你的方法不错。您可以尝试优化它,具体取决于您将如何使用
所有\u id
。例如,您可以在从SQLite读取的过程中过滤ID…我有大约20个ID,它们都经过了一致的检查,因此,既然您已经大声说出来了,那么让一个数据帧不断被引用,而不是一致地返回并从SQLite中提取数据,这可能是有意义的。如果你有不同的意见,请让我知道…你的方法对我来说很好。您可以尝试优化它,具体取决于您将如何使用
所有\u id
。例如,您可以在从SQLite读取的过程中过滤ID…我有大约20个ID,它们都经过了一致的检查,因此,既然您已经大声说出来了,那么让一个数据帧不断被引用,而不是一致地返回并从SQLite中提取数据,这可能是有意义的。如果你有不同的意见,请让我知道。。。