我正在尝试读取包含市场数据的xlsx文件。在文件中,数据如下所示:
name day price
Company A 1997-01-03 23.4124
Company A 1997-01-04 24.8719
. . .
. . .
Company A 2018-12-28 33.1299
Company B 1997-01-03 129.0931
Company B 1997-01-04 130.1131
. . .
. . .
Company B 2018-12-28 143.1983
Company C 1997-01-03 37.8411
. . .
. . .
大约持续一百万行。
现在,我想读取数据并进行操作以便进行一些分析。我希望它看起来像
Company A Company B Company C ....
1997-01-03 23.4124 129.0931 37.8411
1997-01-04 24.8719 130.1131 .
. . . .
. . . .
2018-12-28 33.1299 143.1983 .
下面的代码显示了我尝试过的内容。
import pandas as pd
df = pd.read_excel('financials.xlsx')
df = df.groupby(['day', 'name'])['price'].apply(float)
df = df.reset_index()
df.index = df.day
df.drop(columns=['day'], inplace = True)
df = df.pivot(columns='name')
在此问题上,我通过本网站上的另一个问题获得了帮助。主要问题是第二行给出错误:“ TypeError:无法将系列转换为”
但是,当在第一行添加“ .loc [:50000]”时,该错误消失并且代码按预期运行,即仅读取前50,000行。增加数字会产生错误。正如我之前提到的,该文件包含大约一百万行。
此外,我希望对groupby行进行任何输入;有必要按天分组吗?目前,我得到的输出正确,但是帮助我完成这些工作的人给人的印象是,一家公司一天可以报告多个价格-这是不可能的。