从 PyODBC 读取多个 DataFrame

Read multiple DataFrames from PyODBC

我有一个正在循环的 ID 列表,

ids = [201,202,203,204,205,206,207]

现在,我遍历每个 ID 并获取这些 ID 的值。

for i in ids:
cu.execute('select var1, var2, var3 from tbl where id = 'i'')

在我的下一个 for 循环中,我创建了一个空列表并获取每个 ID 的所有值。

values = []
for j in cu:
    values.append(j)
    df = func(values)

此处,func 为那些附加的 values 列表创建了一个 pandas 数据框。运行后,它会将所有内容保存在一个大数据框中。

我的问题是,如何将每个 id 的值保存到每个列表或 pandas 数据框而不是一个大数据框?

如果您只想按 ID 分隔数据,则可以将每次迭代的数据附加到名为 df_list 的列表中。

df_list = []
for i in ids:
    cursor.execute(
        'select var1, var2, var3 from tbl where id = ?', (i,))
    df_list.append(func([j for j in cursor]))

我已经用列表理解替换了内部循环。一旦 values 被填满,您调用 func 一次并将返回的数据帧附加到 df_list.