将 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()
我的代码是:
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()