合并DataFrame/面板以允许导出为 *一个 * Excel表,而不是多个



运行以下代码时:

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)

我有以下错误:

TypeError: cannot concatenate object of type "<class 'list'>"; only pd.Series, pd.DataFrame, and pd.Panel (deprecated) objs are valid

但是,当我停止concating并打印数据框时,它显示为:

<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

我显然缺少某些内容,但是看来代码不想正确运行,因为它不想限制列表...但是输出线以前将其归类为列表,而是为一个可以限制的面板。嗯

我的最终目标是能够允许将整个数据帧写入一个Excel表格,理想情况下,在开放,关闭,关闭之前,列出了一个股票的开放,关闭,高,低,一个股票的数量。但是,这更多是次要目标。就目前而言,如果我将其写给Excel表,它将在一个选项卡上为每个股票的"开放价格",另一个股票上的"高价",依此类推,依此类推,让我带有5个以上的标签。任何帮助都会很棒。预先感谢。

sheet.col_values返回切片,而 web.DataReader returns a dataframe和错误告诉 concat期望dataframe。

您可能想由resultingdf = pd.concat([df], axis=1)替换resultingdf = pd.concat([data], axis=1)

相关内容

最新更新