0

我的代码是:

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

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

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

4

1 回答 1

0

你可以使用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()
于 2018-07-05T06:43:31.017 回答