Сохранить WRDS SQL-запрос в файл на Python
Мой код:
import wrds
db = wrds.Connection()
compustatq = db.raw_sql("""
select *
from comp.fundq
""")
compustatq.to_csv('path.csv',index=False)
Проблема в том, что набор данных настолько велик, что у меня не хватает оперативной памяти. Поэтому я думал, можно ли загрузить / сохранить данные непосредственно на диске? Следовательно, избегая двухэтапной процедуры загрузки в фрейм данных и последующего экспорта в CSV-файл.
1 ответ
Ты можешь использовать 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
это экземпляр панды. 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()