使用python中的循环分别选择每个SQL列,并将它们存储在列表中
我想为每个SQL列创建一个数据框,并将它们存储在一个列表中。因为我的数据很大,所以我将它们分块加载,然后追加 我已尝试使用以下方法:使用python中的循环分别选择每个SQL列,并将它们存储在列表中,python,sql-server,list,loops,Python,Sql Server,List,Loops,我想为每个SQL列创建一个数据框,并将它们存储在一个列表中。因为我的数据很大,所以我将它们分块加载,然后追加 我已尝试使用以下方法: ###create a list first numdata={} vars=['INITIAL_AMOUNT','LINE_AMOUNT','OUTSTANDING_DEBT'] ##these are names of few column in my sql table ###loop over sql columns and store them
###create a list first
numdata={}
vars=['INITIAL_AMOUNT','LINE_AMOUNT','OUTSTANDING_DEBT'] ##these are names of few column in my sql table
###loop over sql columns and store them in a list
for names in vars:
chunks=pd.read_sql('SELECT names FROM mydb.dbo.mytable', conn, chunksize=100000)
numdata[names]=pd.concat(chunks)
我希望得到类似于:
INITIAL_AMOUNT LINE_AMOUNT
0 600.0000 13500.2870
1 700.0000 1500.7567
2 500.0000 6409.0557
3 500.0000 12700.2870
....
但我得到的只是每行变量的名称,如下所示:
0 INITIAL_AMOUNT LINE_AMOUNT
1 INITIAL_AMOUNT LINE_AMOUNT
2 INITIAL_AMOUNT LINE_AMOUNT
3 INITIAL_AMOUNT LINE_AMOUNT
你能帮我一下吗?试着从mydb.dbo.mytable'中将你的
SELECT
更改为'SELECT['+names+']。我必须说,如果您有足够的内存在python中追加这些列,我看不出有什么理由一个接一个地从sql server中获取它们,但这是您的要求。@Aryerez成功了!非常感谢。即使我没有足够的内存来追加所有列,至少我现在可以单独总结每一列。