WPS表格Python脚本:读取与筛选数据实战

WPS软件表格内置Py脚本编辑与运行

WPS表格内置了Python脚本编辑与运行功能,用户无需安装额外的Python环境或IDE,即可在表格中直接编写和执行Python代码。本文将围绕WPS表格内置的Py脚本功能,介绍如何使用内置的xl()函数读取单元格数据并进行列筛选输出。

1. 认识WPS表格内置Py脚本环境

WPS表格内置的Py脚本功能为表格用户提供了便捷的数据处理方式:用户可以在当前工作簿内直接编写Python代码,通过内置的xl()函数访问工作表数据。无需单独安装pandas、openpyxl等库,环境已预置常用数据分析包。

打开方式:在WPS表格顶部菜单栏中找到「效率工具」「开发工具」,即可进入Py脚本编辑面板。

2. 使用xl()函数读取数据

xl()是WPS表格内置Py环境专门提供的函数,用于直接从当前工作簿读取指定范围的单元格数据,返回一个DataFrame对象。语法如下:

xl(cell_range, headers=True)
  • cell_range:字符串格式的单元格范围,如"A1:C5"
  • headers:布尔值,表示是否将范围的第一行作为列名(表头),默认为True

以下代码演示如何读取A1:C5范围的数据:

# 读取表格数据 A1:C5 df2 = xl("A1:C5", headers=True) 查看数据基本信息 print("数据形状:", df2.shape) print("列名:", list(df2.columns)) print("数据预览:") print(df2.head())

实战示例:员工信息表读取

假设工作表中存在如下员工信息数据(A1:D6 区域):

员工姓名部门入职日期月薪
张三技术部2024-03-1512000
李四市场部2024-06-0110000
王五技术部2023-11-2013500
赵六财务部2022-08-1011000
孙七市场部2024-01-0510500

使用xl()读取并查看数据结构及前两行:

# 实战示例:读取员工信息表 A1:D6 df_employee = xl("A1:D6", headers=True) 查看数据结构 print("数据形状:", df_employee.shape) print("列名:", list(df_employee.columns)) 显示前两行数据 print("\n前两行数据:") print(df_employee.head(2))

3. 列筛选与输出

读取数据后,可以像操作标准pandas DataFrame一样对列进行筛选。下面展示如何从已读取的数据中提取产品名称发货日期两列:

# 读取表格数据 A1:C5 df2 = xl("A1:C5", headers=True) 筛选列 df2_subset = df2[['产品名称', '发货日期']] 打印输出 print("=== 原始数据 ===") print(df2) print("\n=== 筛选后数据 ===") print(df2_subset)

如果希望一次性筛选多个列,只需在列表中指定对应的列名即可:

# 多列筛选 selected_columns = ['产品名称', '发货日期', '数量'] df_multi = df2[selected_columns] print(df_multi)

实战示例:基于员工信息表的条件筛选

结合上一节中员工信息表的实战案例(A1:D6),下面展示如何按条件筛选出「技术部」员工,并输出其姓名和月薪:

# 实战:读取员工信息表 A1:D6 df_emp = xl("A1:D6", headers=True) 条件筛选:部门为「技术部」的员工 tech_dept = df_emp[df_emp['部门'] == '技术部'] 输出筛选后的员工姓名和月薪 print("=== 技术部员工 ===") print(tech_dept[['员工姓名', '月薪']])

4. 常用数据分析操作

在WPS内置Py环境中,同样可以使用pandas丰富的分析方法对数据进行处理、统计与清洗:

# 读取完整数据 df = xl("A1:D100", headers=True) 1. 基本统计 print("数据概览:") print(df.describe()) print("\n各列缺失值数量:") print(df.isnull().sum()) 2. 按条件筛选 high_value = df[df['销售额'] > 1000] print(f"\n销售额大于1000的记录数: {len(high_value)}") 3. 数据分组统计 if '产品名称' in df.columns and '销售额' in df.columns: product_stats = df.groupby('产品名称')['销售额'].sum().reset_index() print("\n按产品统计销售额:") print(product_stats)

5. 完整示例:读取、筛选与输出

以下是一个完整的工作流示例,在WPS表格内置Py编辑器中可直接运行:

# WPS表格内置Py脚本完整示例 1. 读取表格数据 A1:C5 df2 = xl("A1:C5", headers=True) 2. 数据预览 print("=== 步骤1:读取原始数据 ===") print(df2) print(f"共 {len(df2)} 行,{len(df2.columns)} 列") 3. 筛选指定列 df2_subset = df2[['产品名称', '发货日期']] 4. 输出筛选结果 print("\n=== 步骤2:筛选后的数据 ===") print(df2_subset) 5. 简单统计 print("\n=== 步骤3:数据统计 ===") print(f"产品种类数: {df2_subset['产品名称'].nunique()}") print(f"发货日期范围: {df2_subset['发货日期'].min()} 至 {df2_subset['发货日期'].max()}")

6. 使用注意事项

  • 数据范围格式xl()函数接收的单元格范围格式为"A1:C5",确保使用英文冒号分隔起始和结束单元格。
  • 列名大小写:列名严格区分大小写,筛选列时需与表格中的实际列名完全一致。
  • 表头处理:如果数据区域第一行不是表头,应将headers参数设为False,数据将以整数列索引命名。
  • 大数据量处理:读取大范围数据时注意性能,建议按需读取所需行数。
  • 输出结果print()输出会显示在Py脚本面板的结果区域,方便查看和调试。

7. 总结

WPS表格内置Py脚本功能通过xl()函数屏蔽了传统Python数据分析中的文件路径、库导入等繁琐步骤,让用户可以直接聚焦于数据处理逻辑。本文的内容可总结为三个核心步骤:

  1. 使用xl("A1:C5", headers=True)读取指定范围数据
  2. 通过df2[['产品名称', '发货日期']]进行列筛选
  3. print()输出查看结果