【发布时间】:2021-09-11 15:46:34
【问题描述】:
我正在尝试使用 Yahoo 的 API 获取数据以获取股票价格,并将它们显示在 Excel 工作表上。一切正常,除非我尝试转置数据时出现此错误:
AttributeError: 'MultiIndex' object has no attribute 'tz_localize'
这是我的代码:
import pandas as pd
import matplotlib.pyplot as plt
#Data Source
import yfinance as yf
#DATA
stocks = ['AAPL', 'MSFT', 'NEE', 'AMGN', 'TU', 'ZM', 'TSLA', 'TTD', 'SEDG', 'APPN', 'TWLO', 'MMM', 'ABBV', 'SHW', 'K', 'HON', 'AFL', 'JNJ', 'ABT', 'EMR', 'FSLR', 'SPWR', 'ENPH', 'ACC.OL']
data = yf.download(tickers=stocks, period='3d', interval='1d')
#Clean data
columns = ["Adj Close", "High", "Low", "Open", "Volume"]
data.drop(columns=columns, axis=1, inplace=True)
data = data.T
#Remove timezone
data.index = data.index.tz_localize(None)
#Print data
print(data)
#Send to excel
datatoexcel = pd.ExcelWriter("FromPython.xlsx", engine='xlsxwriter')
data.to_excel(datatoexcel, sheet_name='Sheet1')
datatoexcel.save()
有人能解释一下出了什么问题以及我该如何解决吗?谢谢!
【问题讨论】:
-
您正在转置数据,因此索引现在是列,请尝试使用
data.columns = data.columns.tz_localize(None)而不是使用index