You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何用Pandas/Python遍历多表Excel文件并统计非表头行数?

解决方法

这事儿很简单,我给你一步步写清楚:

你已经用pd.ExcelFile读取了Excel文件,接下来只需要遍历每个工作表,读取数据后统计行数,最后拼接成你要的格式就行。

完整代码示例

import pandas as pd

# 你已经完成的读取文件步骤
excel_file = pd.ExcelFile('./data.xlsx')

# 用来存储每个工作表的结果片段
result_items = []

# 遍历所有工作表名称
for sheet_name in excel_file.sheet_names:
    # 读取当前工作表,默认第一行为表头(符合你的需求)
    sheet_data = excel_file.parse(sheet_name)
    # 统计除表头外的行数:parse返回的DataFrame里的行都是数据行,直接取长度即可
    row_count = len(sheet_data)
    # 把当前工作表的结果加入列表
    result_items.append(f"{sheet_name}有{row_count}行")

# 用“、”连接所有结果片段,得到最终格式的字符串
final_output = "、".join(result_items)
print(final_output)

关键细节说明

  • excel_file.parse(sheet_name):这个方法会自动把工作表的第一行识别为表头(列名),返回的DataFrame里只包含数据行,所以直接用len(sheet_data)就能得到你要的“除表头外的条目数量”,不用额外减1。
  • 如果遇到某个工作表只有表头没有数据行,len(sheet_data)会返回0,最终会显示类似x有0行,这也是符合逻辑的。
  • 要是你的Excel里存在没有表头的工作表(但你还是想把第一行当作表头排除),可以在parse时指定header=0(其实这是默认值),确保第一行被当作表头处理。

这样运行代码后,就能得到你想要的类似a有10行、b有12行、c有5行的输出啦。

内容的提问来源于stack exchange,提问作者ah bon

火山引擎 最新活动