如何在 Pandas Dataframe 中导入多个 excel 文件

Posted

技术标签:

【中文标题】如何在 Pandas Dataframe 中导入多个 excel 文件【英文标题】:How to Import Multiple excel file in PandasDataframe 【发布时间】:2019-08-08 18:29:18 【问题描述】:

我无法从仅一个 Dataframe 的目录中加载多个 excel 文件。 我尝试了两种不同的方法,但都不起作用。

给我这个错误。

我该如何解决这个问题?它在创建列表时确实找到了文件,但无法在 Dataframe 中打开它。 有什么提示吗?

import pandas as pd
import os
import glob
import xlrd

cwd = os.getcwd()
cwd

path = '/Users/giovanni/Desktop/news media'
files = os.listdir(path)
files


files_xls = [f for f in files if f[-3:] == 'lsx']
files_xls





df = pd.DataFrame()

for f in files_xls:
    data = pd.read_excel(f)
    df = df.append(data)

FileNotFoundError: [Errno 2] No such file or directory: 'NOV.xlsx'

【问题讨论】:

你在用windows吗? 您需要提供更多信息:所有 excel 文件的格式是否相同? (即与数据相同的工作表名称,相同的列)。 检查一下,它更符合您的目的:***.com/questions/28669482/… 我正在使用 MAC。所有文件都采用相同格式它确实在目录中找到所有列表,所以当运行 files_xls 所有名称都显示为输出,但比给我这个错误 请更改文件扩展名的拼写,应该是'xls',而不是'lsx' 【参考方案1】:

试试这个:

import os
import glob
path = '/Users/giovanni/Desktop/news media'
df = pd.DataFrame()
for file in glob.glob(os.path.join(path,'*.xlsx')):
    data = pd.read_excel(file)
    print(data)
    df = df.append(data)

【讨论】:

【参考方案2】:

将您的最终循环替换为:

for f in files_xls:
    full_path = os.path.join(path, f)
    data = pd.read_excel(full_path) 
    df = df.append(data)

【讨论】:

以上是关于如何在 Pandas Dataframe 中导入多个 excel 文件的主要内容,如果未能解决你的问题,请参考以下文章

Elasticsearch:将数据从 Elasticsearch 和 Kibana 导出到 Pandas Dataframe

Elasticsearch:将数据从 Elasticsearch 和 Kibana 导出到 Pandas Dataframe

如何在 Pandas 中遍历 DataFrame 中的行

如何在 Pandas 中遍历 DataFrame 中的行

Pandas:如何将 cProfile 输出存储在 pandas DataFrame 中?

如何在 jupyter 中像 pandas Dataframe 一样打印 Pyspark Dataframe