【问题标题】:Open multiple Excel files to separate Pandas dataframes打开多个 Excel 文件以分隔 Pandas 数据框
【发布时间】:2020-07-11 12:55:06
【问题描述】:

Python 新手,可以使用一些帮助导入多个 Excel 文件来分隔 Pandas 数据框。我已经成功实现了以下代码,但当然它将所有内容都导入了一帧。我想将它们导入 df1、df2、df3、df4、df5 等。

有什么帮助,谢谢!

import pandas as pd
import glob


def get_files():
    directory_path = input('Enter directory path: ')
    filenames = glob.glob(directory_path + '/*.xlsx')
    number_of_files = len(filenames)
    df = pd.DataFrame()
    for f in filenames:
        data = pd.read_excel(f, 'Sheet1')
        df = df.append(data)
    print(df)
    print(number_of_files)

get_files()

【问题讨论】:

  • 你能澄清一下到底是什么问题吗?
  • 您不能将它们添加到列表或字典中,而不是将它们全部附加到同一个 DataFrame 中吗?
  • 我确信我可以将它们添加到字典或字典中,但我在 Python 方面的经验非常有限。我什至不确定代码会是什么样子。

标签: python pandas


【解决方案1】:

最简单的方法是使用列表。列表的每个元素都是一个数据框

def get_files():
    directory_path = input('Enter directory path: ')
    filenames = glob.glob(directory_path + '/*.xlsx')
    number_of_files = len(filenames)
    df_list = []
    for f in filenames:
        data = pd.read_excel(f, 'Sheet1')
        df_list.append(data)
    print(df_list)
    print(number_of_files)
    return df_list

get_files()

然后,您可以使用df_list[0]df_list[1]...访问您的数据框。

【讨论】:

    【解决方案2】:

    就像 Jezrael 的另一个选项在这里回答 https://stackoverflow.com/a/52074347/13160821 但已针对您的代码进行了修改。

    from os.path import basename
    
    def get_files():
        directory_path = input('Enter directory path: ')
        filenames = glob.glob(directory_path + '/*.xlsx')
        number_of_files = len(filenames)
    
        df_list = {basename(f) : pd.read_excel(f, 'Sheet1') for f in filenames}
    
        print(number_of_files)
        return df_list
    
    get_files()
    

    然后可以通过文件名访问它,例如。 dfs['file_name1.xlsx']dfs['some_file.xlsx']。您还可以执行 splitext 之类的操作以从密钥中删除 xlsx 或仅使用文件名的一部分。

    【讨论】:

    • 很高兴为您提供 splitext 的帮助,如果您需要的话。只需要知道文件名的样子以及您想将其中的哪一部分用作密钥。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 2015-01-02
    • 2014-08-02
    • 2019-09-29
    • 2014-03-12
    • 2020-10-03
    • 2018-01-25
    相关资源
    最近更新 更多