python - 在 Python 中将多个 Excel 文件附加到一个文件时出错
问题描述
我正在尝试在 Python 中将 10 个 Excel 文件附加到一个文件中,
使用了下面的代码,我得到了
TypeError: first argument must be an iterable of pandas objects,
you passed an object of type "DataFrame"
一旦我将 sheet_name 参数更改为 None,代码就会完美运行。但是,所有 10 个 excel 文件都有三张表,我只想要每个 excel 文件的特定表。有没有办法完成它?
感谢您的帮助。
import pandas as pd
import glob
path = r'Folder path'
filenames = glob.glob(path + "\*.xlsx")
finalexcelsheet = pd.DataFrame()
for file in filenames:
df = pd.concat(pd.read_excel(file, sheet_name= 'Selected Sheet'), ignore_index=True,sort=False)
finalexcelsheet=finalexcelsheet.append(df,ignore_index=True)
解决方案
我无法测试它,但问题是因为你使用concat
错误的方式 - 或者更确切地说是因为你不需要concat
在你的情况下。
concat
需求清单与dataframes
喜欢
concat( [df1, df2, ...], ...)
但是read_excel
为不同的对象提供不同的对象sheet_name=...
,这会产生问题。
read_excel
用于sheet_name=None
返回列表或字典,所有工作表都分开dataFrames
[df_sheet_1, df_sheet_2, ...]
然后concat
可以将它们加入一个dataframe
read_excel
单人sheet_name=name
退货dataframe
df_sheet
然后concat
什么都没有加入 - 它给出了错误。
但这意味着您不需要concat
.
您应该直接分配read_excel
给df
for file in filenames:
df = pd.read_excel(file, sheet_name='Selected Sheet')
finalexcelsheet = finalexcelsheet.append(df, ignore_index=True)
推荐阅读
- sql - SQL presto过滤日期列表?
- javascript - 如果存在则加载 json 并附加数据,而不是重新创建和覆盖 json 文件
- pyspark - 计算 pyspark 数据框列上的百分位数,忽略缺失值
- rust - 是否有理由在 Substrate 中对特定类型使用通用特征?
- c# - 使用 Get() 的简单 ping 控制器的属性路由不起作用
- python-3.5 - psycopg2 ImportError:未定义符号:PQconninfo
- html - 有没有办法在旋转木马上覆盖一个大屏幕?
- python - python没有正确绘制“切线”函数
- php - 如何通过php连接到SSH服务器
- javascript - afterAll 中出现错误 - 在使用 Karma 进行 Web 组件测试期间