Сохранить 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()
Другие вопросы по тегам