读取和处理数据仅适用于部分数据,但不适用于整个数据集

时间:2019-07-17 10:03:03

标签: python excel pandas

我正在尝试读取包含市场数据的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行进行任何输入;有必要按天分组吗?目前,我得到的输出正确,但是帮助我完成这些工作的人给人的印象是,一家公司一天可以报告多个价格-这是不可能的。

0 个答案:

没有答案