在pandas中读取带有不同工作表名称的多个excel文件

 冭獭1314 发布于 2023-02-02 19:31

要从目录中读取文件,请尝试以下操作:

import os
import pandas as pd
path=os.getcwd()
files=os.listdir(path)
files

['wind-diciembre.xls', 'stat_noviembre.xls', 'stat_marzo.xls', 'wind-noviembre.xls', 'wind-enero.xls', 'stat_octubre.xls', 'wind-septiembre.xls', 'stat_septiembre.xls', 'wind-febrero.xls', 'wind-marzo.xls', 'wind-julio.xls', 'wind-octubre.xls', 'stat_diciembre.xls', 'stat_julio.xls', 'wind-junio.xls', 'stat_abril.xls', 'stat_enero.xls', 'stat_junio.xls', 'stat_agosto.xls', 'stat_febrero.xls', 'wind-abril.xls', 'wind-agosto.xls']

哪里:

stat_enero

     Fecha  HR  PreciAcu  RadSolar     T  Presion  Tmax  HRmax  \
01/01/2011  37         0       162  18.5        0  31.2     86   
02/01/2011  70         0        58  12.0        0  14.6     95   
03/01/2011  62         0       188  15.3        0  24.9     86   
04/01/2011  69         0       181  17.0        0  29.2     97 
     .
     .
     .

          Presionmax  RadSolarmax  Tmin  HRmin  Presionmin  
    0            0          774  12.3      9           0  
    1            0          314   9.2     52           0  
    2            0          713   8.3     32           0  
    3            0          730   7.7     26           0
    .
    .
    .

 wind-enero

            Fecha  MagV  MagMax  Rachas  MagRes  DirRes DirWind
01/08/2011 00:00   4.3    14.1    17.9     1.0   281.3     ONO
02/08/2011 00:00   4.2    15.7    20.6     1.5    28.3     NNE
03/08/2011 00:00   4.6    23.3    25.6     2.9    49.2     ENE
04/08/2011 00:00   4.8    17.9    23.0     2.0    30.5     NNE
    .
    .
    .

下一步是读取,解析文件并将其添加到数据框中,现在我执行以下操作:

for f in files:
    data=pd.ExcelFile(f)
    data1=data.sheet_names
    print data1
    [u'diciembre']
    [u'Hoja1']
    [u'Hoja1']
    [u'noviembre']
    [u'enero']
    [u'Hoja1']
    [u'septiembre']
    [u'Hoja1']
    [u'febrero']
    [u'marzo']
    [u'julio']
        .
        .
        .

for sheet in data1:
    data2=data.parse(sheet)
data2
                Fecha  MagV  MagMax  Rachas  MagRes  DirRes DirWind
01/08/2011 00:00   4.3    14.1    17.9     1.0   281.3     ONO
02/08/2011 00:00   4.2    15.7    20.6     1.5    28.3     NNE
03/08/2011 00:00   4.6    23.3    25.6     2.9    49.2     ENE
04/08/2011 00:00   4.8    17.9    23.0     2.0    30.5     NNE
05/08/2011 00:00   6.0    22.5    26.3     4.4    68.7     ENE
06/08/2011 00:00   4.9    23.8    23.0     3.3    57.3     ENE
07/08/2011 00:00   3.4    12.9    20.2     1.6   104.0     ESE
08/08/2011 00:00   4.0    20.5    22.4     2.6    79.1     ENE
09/08/2011 00:00   4.1    22.4    25.8     2.9    74.1     ENE
10/08/2011 00:00   4.6    18.4    24.0     2.3    52.1     ENE
11/08/2011 00:00   5.0    22.3    27.8     3.3    65.0     ENE
12/08/2011 00:00   5.4    24.9    25.6     4.1    78.7     ENE
13/08/2011 00:00   5.3    26.0    31.7     4.5    79.7     ENE
14/08/2011 00:00   5.9    31.7    29.2     4.5    59.5     ENE 
15/08/2011 00:00   6.3    23.0    25.1     4.6    70.8     ENE
16/08/2011 00:00   6.3    19.5    30.8     4.8    64.0     ENE
17/08/2011 00:00   5.2    21.2    25.3     3.9    57.5     ENE
18/08/2011 00:00   5.0    22.3    23.7     2.6    59.4     ENE
19/08/2011 00:00   4.4    21.6    27.5     2.4    57.0     ENE

上面的输出只显示文件的一部分,我如何解析所有文件并将它们添加到数据帧

1 个回答
  • 首先,看起来这些文件中有几个不同的数据集.您可能希望它们都在一个数据框中,但是现在,我将假设您希望它们分开.Ex(一个数据帧中的所有wind*.xls文件和另一个数据帧中的所有stat*.xls文件.)您可以使用解析数据read_excel,然后使用时间戳作为索引连接结果,如下所示:

    import numpy as np
    import pandas as pd, datetime as dt
    import glob, os
    
    runDir = "Path to files"
    
    if os.getcwd() != runDir:
        os.chdir(runDir)
    
    files = glob.glob("wind*.xls")
    
    df = pd.DataFrame()
    
    for each in files:
        sheets = pd.ExcelFile(each).sheet_names
    
        for sheet in sheets:
            df = df.append(pd.read_excel(each, sheet, index_col='Fecha'))
    

    您现在有一个时间索引的数据帧!如果您真的想要将所有数据放在一个数据框中(来自所有文件类型),您可以glob使用类似的东西调整包含所有文件glob.glob('*.xls').我会从个人经验中警告,您可能更容易分别读取每种类型的数据,然后在完成一些错误检查/修改等后合并它们.

    2023-02-02 19:33 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有