合并数据帧/面板以允许导出到*一个*excel表,而不是多个

2024-04-27 03:56:50 发布

您现在位置:Python中文网/ 问答频道 /正文

运行以下代码时:

import datetime as dt
from datetime import datetime
import pandas as pd
import pandas_datareader.data as web
from pandas import ExcelWriter
import xlrd
import xlwt

start = dt.datetime.strptime("8/11/2017", "%m/%d/%Y")
end = dt.datetime.today()

book = xlrd.open_workbook('Example.xlsx')
sheet = book.sheet_by_name('Okay')
data = sheet.col_values(0, 1)
##print(data)

df = web.DataReader(data, 'yahoo', start, end)
print(df)

resultingdf = pd.concat([data], axis=1)

我得到以下错误:

^{pr2}$

但是,当我停止计算,只打印数据帧时,它显示如下:

<class 'pandas.core.panel.Panel'>
Dimensions: 6 (items) x 79 (major_axis) x 4 (minor_axis)
Items axis: Adj Close to Volume
Major_axis axis: 2017-12-01 00:00:00 to 2017-08-11 00:00:00
Minor_axis axis: AAPL to UCTT

我显然漏掉了一些东西,但代码似乎不想正常运行,因为它不想合并一个列表。。。但是行前面的输出并没有将其分类为列表,而是将其分类为一个面板,它可以是concat'd.Hmmm

我的最终目标是能够将整个数据框架写入一个excel表格,理想情况下,在转到另一个股票的开盘、收盘、高点、低点等之前,先将一只股票的开盘价、收盘价、收盘价等都列出来;不过,这更像是一个次要目标。现在,如果我把它写在excel表格里,它会把每只股票的“开盘价”写在一个标签上,把“收盘价”写在另一个标签页上,以此类推,这样我就有5个以上的标签了。任何帮助都会很好。提前谢谢。在


Tags: to代码fromimportpandasdatadatetimeas
1条回答
网友
1楼 · 发布于 2024-04-27 03:56:50

sheet.col_values返回一个切片,而web.DataReader returns是一个数据帧,错误告诉concat需要一个数据帧。在

您可能需要将resultingdf = pd.concat([data], axis=1)替换为resultingdf = pd.concat([df], axis=1)

相关问题 更多 >