gpt4 book ai didi

python - 连接 Excel 文件,使用文件名作为索引抛出错误

转载 作者:行者123 更新时间:2023-12-01 01:36:16 25 4
gpt4 key购买 nike

我有大约 20 个 XLSX 文件,大小从 4-10 MB 不等。

我想抓取这些 xlsx 文件中的某个工作表并将它们连接到一个文件中。

每个 xlsx 文件均按周顺序命名,而我尝试解析的工作表没有日期,因此我使用 file_name 作为索引,并对周日期进行逆向工程。

我正在使用以下代码,我经常使用它来将多个文件连接到一个 df 中。我还使用 basename 添加名称,但出现以下错误。

ValueError: Length mismatch: Expected axis has 461 elements, new values have 457 elements


import pandas as pd
from os.path import basename
import os
import glob
path = os.getcwd()
allFiles = glob.glob(path + "/*.xlsx")

frame = pd.DataFrame()
master_list = []

for file_ in allFiles:
df = pd.read_excel(file_,sheet_name = "Base data",index_col=None,
header=0)
df.index = [os.path.basename(f)] * len(data)
master_list.append(df)

frame = pd.concat(master_list)

最佳答案

您可以对 DataFrame 列表使用列表理解,然后在 concat 中创建用于参数 keys 的文件名列表。 :

dfs = [pd.read_excel(f, sheet_name="Base data",index_col=None,header=0) for f in allFiles]

keys = [os.path.basename(f) for f in allFiles]
frame = pd.concat(dfs, keys=keys)
#if want remove default index values
#frame = pd.concat(dfs, keys=keys).reset_index(level=1, drop=True)

关于python - 连接 Excel 文件,使用文件名作为索引抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52369454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com