我试图从一个文件夹中导入许多Excel文件(大约400个)到一个数据框中,但我似乎遇到了错误。
我想从我的文件夹的文件是名称文件名后面跟一个日期-“filename_yyyy_mm_dd.xlsx”。
我想保留标题,因为文件的不同日期都有相同的列。
我目前的代码是:
import glob
import pandas as pd
import os
path = r"C:\Users\..."
my_files = glob.glob(os.path.join(path, "filename*.xlsx"))
file_li = []
for filename in my_files:
df = pd.read_excel(filename, index_col=None, header=1)
file_li.append(df)
frame = pd.concat(file_li, axis=0, ignore_index=True)
当我调用我的框架时,我没有得到任何响应?我调用文件名的方式是否有什么错误?
更新:
我的Excel文件如下所示:
| 第1列|第2栏|第三栏|第四栏|第五栏|第六列|第七栏|第八列|第九栏|第十列|第十一列|第十二列|第十三栏|第十四栏|
| - -|- -|- -|- -|- -|- -|- -|- -|- -|- -|- -|- -|- -|- -|
| 日期|SREC-MD系统|SREC系统|二月二十五日|多数据交换|F级||八十五|第0页|第0页|小行星8086|2025年2月25日|小行星20107||
具有大约300-400行。
我的输出捕获了14列,但它添加了很多列,因为执行frame.info()显示我有922列。
更新二:
2条答案
按热度按时间t5zmwmid1#
很难解释为什么会出现额外的列,但可以尝试以下方法:
但是,我建议您检查一下
frame
中是否有与您的电子表格相比缺少的行。zkure5ic2#
如果不使用concat,您可以尝试将文件读入df,然后使用mode='a'将它们附加到一个组合的csv中,然后读取组合的csv。