Очистка выбранных столбцов из CSV в Yahoo Finance с использованием Python
Я пытаюсь очистить выбранные столбцы из данных Yahoo Finance. Я могу очистить все данные в формате CSV, но мне любопытно узнать, как я могу просто очистить только выбранные столбцы, а не все данные CSV. Я попробовал метод split, чтобы преобразовать строковые данные в список, а затем получить доступ только к нужным столбцам из списка, но он не работает правильно.
import urllib2
listOfStocks = ["AAPL", "MSFT", "GOOG", "FB", "AMZN"]
urls = []
for company in listOfStocks:
urls.append('http://real-chart.finance.yahoo.com/table.csv?s=' + company + '&d=6&e=28&f=2015&g=m&a=11&b=12&c=1980&ignore=.csv')
Output_File = open('../Files_Directory/Yahoo_Finance/Historical_Prices.csv','w')
New_Format_Data = ''
for counter in range(0, len(urls)):
Original_Data = urllib2.urlopen(urls[counter]).read()
if counter == 0:
New_Format_Data = "Company," + urllib2.urlopen(urls[counter]).readline()
rows = Original_Data.splitlines(1)
for row in range(1, len(rows)):
New_Format_Data = New_Format_Data + listOfStocks[counter] + ',' + rows[row]
Output_File.write(New_Format_Data)
Output_File.close()
1 ответ
Это может сделать вашу жизнь проще, если вы просто используете один из существующих модулей Python для Yahoo Finance, например, " yahoo_finance"
Ex записывает только объемные данные, используя этот модуль (не тестировался)
import yahoo_finance as yf
import csv
listOfStocks = ["AAPL", "MSFT", "GOOG", "FB", "AMZN"]
with open('my_output') as csvfile:
Output_file = csv.writer(csvfile)
for stock in listOfStocks:
s = yf.Share(stock)
hist = s.get_historical('2015-01-01', '2015-10-30')
for row in hist:
Output_file.writerow([stock, row['Date'], row['Volume'])