【发布时间】:2020-07-03 17:21:01
【问题描述】:
我正在使用从雅虎提取股票数据的脚本,为了使用它,我需要更改列名,以便它们都是小写的。这适用于所有其他列,除了“日期”,由于某种原因没有改变。我尝试重命名 set_index 之前的列,但随后脚本停止保存 csv。
这里是更改名称的行
df.rename(columns={'Date':'date',
'High':'high',
'Low':'low',
'Open':'open',
'Close':'close',
'Volume':'volume',
'Adj Close':'adj close'},
inplace=True)
这是它在代码中的样子
def get_data_from_yahoo(reload_sp500=False):
if reload_sp500:
tickers = save_sp500_tickers()
else:
with open("sp500tickers.pickle", "rb") as f:
tickers = pickle.load(f)
if not os.path.exists('stock_dfs'):
os.makedirs('stock_dfs')
start = dt.datetime(2010, 6, 8)
end = dt.datetime.now()
for ticker in tickers:
print(ticker)
if not os.path.exists('stock_dfs/{}.csv'.format(ticker)):
try:
df = pdr.get_data_yahoo(ticker, start, end)
df.reset_index(inplace=True)
df.set_index("Date", inplace=True)
df.rename(columns={'Date':'date',
'High':'high',
'Low':'low',
'Open':'open',
'Close':'close',
'Volume':'volume',
'Adj Close':'adj close'},
inplace=True)
df.to_csv('stock_dfs/{}.csv'.format(ticker))
time.sleep(2)
except:
continue
else:
print('Already have {}'.format(ticker))
在我更新(尝试)之后
try:
df = pdr.get_data_yahoo(ticker, start, end)
df.reset_index(inplace=True)
df.set_index("Date", inplace=True)
df.rename(columns={'High':'high',
'Low':'low',
'Open':'open',
'Close':'close',
'Volume':'volume',
'Adj Close':'adj close'},
index = {'Date':'date'},
inplace=True)
df.to_csv('stock_dfs/{}.csv'.format(ticker))
然后是这个
df.rename(columns={'High':'high',
'Low':'low',
'Open':'open',
'Close':'close',
'Volume':'volume',
'Adj Close':'adj close'}, inplace=True)
df.rename(index = {'Date':'date'}, inplace=True)
【问题讨论】: