Как обновить вместо перезаписи csv на python с pandas для получения биржевых данных? - PullRequest
0 голосов
/ 14 января 2019

Я абсолютный нуб с точки зрения программирования.
Я хочу получить исторические данные списка акций из Yahoo для анализа данных.
Я изменил сценарий, который нашел, и получил это.

#settings for importing built-in datetime and date libraries
#and external pandas_datareader libraries

import pandas_datareader.data as web
import datetime
from datetime import timedelta


#read ticker symbols from a file to python symbol list
symbol = []
with open('E:\Google drive\Investment\Python Stock pick\Stocklist1.txt') as f:  
    for line in f:
        symbol.append(line.strip())
f.close

end = datetime.datetime.today()

start = end - timedelta(days=400)

#set path for csv file
path_out = 'E:/Google drive/Investment/Python Stock pick/CSV/'


i=0
while i<len(symbol):
    try:
        df = web.DataReader(symbol[i], 'yahoo', start, end)
        df.insert(0,'Symbol',symbol[i])
        df = df.drop(['Adj Close'], axis=1)
        if i == 0:
            df.to_csv(path_out+symbol[i]+'.csv')
            print (i, symbol[i],'has data stored to csv file')
        else:
            df.to_csv(path_out+symbol[i]+'.csv',header=True)
            print (i, symbol[i],'has data stored to csv file')
    except:
        print("No information for ticker # and symbol:")
        print (i,symbol[i])
        i=i+1
        continue
    i=i+1

И я запускаю скрипт каждый день, и он получает данные о запасах в прошлом.
Он заменит весь CSV-файл и всегда заменяет старые данные новыми.

В любом случае сценарий может просто добавить новые данные в файл csv?

Большое спасибо заранее. Я новичок в мире программирования и понятия не имею, как это сделать.

Ответы [ 2 ]

0 голосов
/ 29 июня 2019

Я думаю, вам нужно добавить «+» вместо этого. В противном случае файл будет продолжать цикл сам. Это то, что случилось со мной.

0 голосов
/ 14 января 2019

Вы должны добавить параметр 'a':

with open('E:\Google drive\Investment\PythonStockpic\Stocklist1.txt','a') as f:
    f.write(line.strip())

см .: добавить новую строку в старый файл CSV Python

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...