【问题标题】:How to swap row and columns Panda如何交换行和列 Panda
【发布时间】: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

标签: python pandas yahoo-api


【解决方案1】:

当您调用data.T 时,DataFrame 的索引由您的符号组成,它们没有时区。也许您想在转置之前删除时区?

【讨论】:

    猜你喜欢
    • 2020-02-19
    • 1970-01-01
    • 1970-01-01
    • 2017-09-08
    • 2019-11-16
    • 2020-11-29
    • 2019-04-21
    • 1970-01-01
    相关资源
    最近更新 更多