用python将wrds sql查询保存到文件

col17t5w  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(362)

我的代码是:

import wrds
db = wrds.Connection() 
compustatq = db.raw_sql("""
              select *
              from comp.fundq 
              """)

compustatq.to_csv('path.csv',index=False)

问题是数据集太大了,我的内存用完了。因此,我在想是否有可能将数据直接下载/保存到磁盘上?因此,避免了下载到Dataframe然后导出到csv文件的两步过程。

rseugnpd

rseugnpd1#

你可以用 csv 去图书馆。它是一个python内置库。我不知道你是什么类型的 compustatq . 但要想办法逐行阅读。
像这样使用:

import csv

writer = csv.writer(open('path.csv', 'wb+'), dialect='excel')
for row in compustatq:
    writer.writerow([str(v) for v in row])

参考:csv
我刚刚读了 wrds.Connection.raw_sql . 它告诉你 compustatq 是pandas.dataframe的示例。所以你还是可以用这个方法 to_csv 但方式略有不同:

f = open('path.csv', 'wb+')
for i in xrange(len(compustatq)):
    f.write(df[i:i+1].to_csv(header=i==0))
f.close()

相关问题