Python机器人开发:Excel列提取与数值区间统计及写入问题排查
Python Excel 数据统计与写入解决方案
需求明确
- 提取「文件1.xlsx」工作表1中C列的所有数值数据
- 在「文件2.xlsx」中统计各区间的数值数量:
- 0.00-0.99、1.00-1.99……11.00-11.99
- 大于等于12.00的归入「≥12.00」区间
- 统计所有有效数据的总数
- 解决Excel写入失败的问题
完整可运行代码
使用pandas+openpyxl实现,兼容性和稳定性更强:
import pandas as pd import numpy as np # 1. 读取源数据 # 仅读取文件1的工作表1的C列,跳过空值 df_source = pd.read_excel("文件1.xlsx", sheet_name=0, usecols="C").dropna() # 确保数据为数值类型,过滤非数值内容 df_source = df_source[pd.to_numeric(df_source.iloc[:,0], errors="coerce").notna()] data = df_source.iloc[:,0].values # 2. 统计区间数量 # 定义区间边界 bins = np.arange(0, 13, 1) # 区间标签 labels = [f"{i}.00-{i+0.99}" for i in range(12)] + ["≥12.00"] # 统计各区间数量 counts, _ = np.histogram(data, bins=np.append(bins, np.inf)) # 构建统计结果DataFrame result_df = pd.DataFrame({ "区间": labels, "数量": counts }) # 添加总数行 total_row = pd.DataFrame({"区间": ["总数"], "数量": [len(data)]}) result_df = pd.concat([result_df, total_row], ignore_index=True) # 3. 写入目标Excel文件 # 使用openpyxl引擎支持xlsx格式写入,若文件不存在会自动创建 with pd.ExcelWriter("文件2.xlsx", engine="openpyxl", mode="w") as writer: result_df.to_excel(writer, sheet_name="统计结果", index=False) print("统计完成,数据已写入文件2.xlsx")
写入失败问题排查
如果仍然无法写入,检查以下几点:
- 文件占用:确保「文件2.xlsx」没有被Excel或其他程序打开
- 依赖安装:执行
pip install pandas openpyxl确保依赖库正确安装 - 路径问题:使用绝对路径(比如
"C:/Users/xxx/Desktop/文件1.xlsx")避免相对路径错误 - 权限问题:确保程序有目标文件夹的读写权限
- 数据异常:确认源数据中没有极端值或非数值内容(代码已做基础过滤)
内容的提问来源于stack exchange,提问作者Lightlink
相关产品推荐
相关产品推荐

