将 WRDS SQL 查询保存到 python 中的文件

Save WRDS SQL query to file in python

我的代码是:

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

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

问题是数据集太大,以至于我 运行 RAM 内存不足。因此,我在想是否可以 download/save 直接将数据存储在磁盘上?因此,避免了下载到数据帧然后导出到 csv 文件的两步过程。

您可以使用 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()