代码之家  ›  专栏  ›  技术社区  ›  Bill Armstrong

附加一只熊猫。将excel dataframe读取到新的dataframe

  •  1
  • Bill Armstrong  · 技术社区  · 8 年前

    我正在尝试将几个XLS文件读入熊猫的数据帧。它们看起来读得很正确,但当我尝试显示(df),df时。info()或df。head()数据框为空。

    所有数据都位于名为 data1 。xls图纸已命名 a.xls b.xls

    数据集如下:

    a、 xls公司

    Account Description Final   Adjustment  Adj Final
    324     Testing1    2342             0   2342
    232     Essential   5678             0   5678
    35      Options     2345             0   2345
    634     Working       45          5675   5720
    23      Time       45774             0  45774
    52      Styling       67             0     67
    

    b、 xls公司

    Account Description Final   Adjustment  Adj Final
    343     Visual        345            0    345
    576     IO Tools    34543            0  34543
    6567    Options      6356            0   6356
    8675    Pickling     7456         5675  13131
    345     Clipboard    5678            0   5678
    6365    Flat         2355          645   3000
    

    代码:

    import pandas as pd
    import os
    from IPython.display import display, HTML
    
    df = pd.DataFrame()
    
    for filename in os.listdir('data1'):
        if filename.endswith(".xls"):
            print(f'appending {filename}')
            data = pd.read_excel(os.path.join("data1", filename), sheet_name=0)
            display(data)
            df.append(data)
            display(df)
        else:
            print(f'skipping {filename}, wrong data type')
    

    输出:

        appending a.xls
           Account  Description Final   Adjustment  Adj Final
        0      324     Testing1  2342            0       2342
        1      232    Essential  5678            0       5678
        2       35      Options  2345            0       2345
        3      634      Working    45         5675       5720
        4       23         Time 45774            0      45774
        5       52      Styling    67            0         67
        ___
    
        appending b.xls
           Account  Description Final   Adjustment  Adj Final
        0      343       Visual   345            0        345
        1      576     IO Tools 34543            0      34543
        2     6567      Options  6356            0       6356
        3     8675     Pickling  7456         5675      13131
        4      345    Clipboard  5678            0       5678
        5     6365         Flat  2355          645       3000
        ___
    

    这个 display(data) 生成上面的表,但 display(df) 生成 ___ 。所以,不知怎的,我正在将excel文件读入 data ,但它没有将其附加到 df

    df.info() 产生:

    <class 'pandas.core.frame.DataFrame'>
    Index: 0 entries
    Empty DataFrame
    

    我的问题是如何 append 这个 数据 进入单个数据帧( df公司 )用于多个excel工作簿。

    1 回复  |  直到 8 年前
        1
  •  2
  •   hanego    8 年前

    您从未重新分配变量 df ,则数据帧为空。您应该执行以下操作:

    df = df.append(data)