【发布时间】:2018-01-07 19:01:53
【问题描述】:
我正在尝试从 Yahoo! 提取数据!财务分析,当我想从 CSV 文件中读取而不是从 Yahoo! 下载时遇到问题每次我运行程序。
import pandas_datareader as pdr
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import datetime
def get(tickers, startdate, enddate):
def data(ticker):
return pdr.get_data_yahoo(ticker, start = startdate, end = enddate)
datas = map(data, tickers)
return(pd.concat(datas, keys = tickers, names = ['Ticker', 'Date']))
tickers = ['AAPL', 'MSFT', 'GOOG']
all_data = get(tickers, datetime.datetime(2006, 10,1), datetime.datetime(2018, 1, 7))
all_data.to_csv('data/alldata.csv')
#Open file
all_data_csv = pd.read_csv('data/alldata.csv', header = 0, index_col = 'Date', parse_dates = True)
daily_close = all_data[['Adj Close']].reset_index().pivot('Date', 'Ticker', 'Adj Close')
我在“daily_close”部分遇到问题。上面的代码使用直接来自网络的“all_data”。如何更改代码的最后一行,以便从我的 csv 文件中提取数据?我已经尝试过daily_close = all_data_csv[['Adj Close']].reset_index().pivot('Date', 'Ticker', 'Adj Close'),但是由于“Ticker”,这会导致 KeyError。
csv 数据格式如下,第一列包含所有代码:
【问题讨论】:
-
all_data_csv.reset_index('Date')[['Date', 'Ticker', 'Adj Close']].pivot('Date', 'Ticker', 'Adj Close')
标签: python pandas dataframe pivot keyerror