Python - 在循环的每次迭代中将每个对象的值保存在列表/数据框中

时间:2017-07-15 17:11:38

标签: python pandas dataframe pyodbc

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

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

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

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

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

values = []
for j in cu:
    values.append(j)
    dff = MyFunction(values)

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

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

1 个答案:

答案 0 :(得分:2)

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

df_list = []
for i in Allids:
    cu.execute('select var1, var2, var2 from tbl where id = 'i'')
    values = [j for j in cu]
    df_list.append(MyFunction(values))

我用列表理解取代了内循环。填写values后,您只需拨打MyFunction一次,然后将返回的数据框附加到df_list