Excel读取了几万行数据,影刀自带指令卡得要命。
筛选特定条件的数据、按销量排序、去重、合并多个表格——这些用Pandas一行代码搞定。
Pandas是Python的数据分析库,在影刀的“Python代码”指令里直接能用,而且不消耗RPA时长。
我也是非技术,只学了Pandas四五个函数,数据清洗效率翻了3倍。
一、Pandas是什么——Excel的超级加强版
场景:处理超过5000行的表格,影刀的“读取区域”和“写入区域”已经很慢,再循环处理更是煎熬。
核心:Pandas把表格变成一个“DataFrame”对象,可以用一行代码完成筛选、排序、分组、合并。
在影刀里使用Pandas
- 拖入 “Python代码” 指令。
2. 点亮右上角的Python图标。
- 在代码里写
import pandas as pd。 - 注意:影刀社区版默认没有安装pandas,需要先安装(见文末资源)。
安装方法(只需做一次):
打开影刀安装目录下的Python环境,运行pip install pandas。
或者用“运行Python文件”指令调用已安装pandas的外部环境。
二、读取Excel到Pandas——替代影刀读取区域
# 输入:file_path(Excel文件路径)
# 输出:df(DataFrame对象)

import pandas as pd
# 读取Excel,默认读取第一个sheet
df = pd.read_excel(file_path)
# 如果只读特定列(比如A、C、E列)
df = pd.read_excel(file_path, usecols="A,C,E")
# 如果第一行不是表头
df = pd.read_excel(file_path, header=None)
# 如果文件很大,只读前1000行
df = pd.read_excel(file_path, nrows=1000)
在影刀里使用:
读完后df是一个DataFrame,你可以继续用Pandas操作。
操作完再写回Excel。
三、筛选数据——按条件挑出需要的行
场景:采集了1000个商品,只要价格大于100且销量大于500的。
# 筛选价格>100且销量>500
筛选后的df = df[(df['价格'] > 100) & (df['销量'] > 500)]
# 筛选标题包含“手机”的商品
筛选后的df = df[df['标题'].str.contains('手机', na=False)]
# 筛选价格在50到200之间的
筛选后的df = df[(df['价格'] >= 50) & (df['价格'] <= 200)]
# 排除某个店铺(不等于)
筛选后的df = df[df['店铺'] != '某某旗舰店']
常用筛选符号:
&且(注意用括号括起来)|或~非(取反)
四、排序——按一列或多列排序
场景:按销量从高到低排序,销量相同时按价格从低到高。
# 按销量降序(ascending=False)
df_sorted = df.sort_values('销量', ascending=False)
# 按销量降序,再按价格升序
df_sorted = df.sort_values(['销量', '价格'], ascending=[False, True])
影刀实操注意:
排序后索引(行号)还是原来的顺序,如果想重置索引:
df_sorted = df_sorted.reset_index(drop=True)

五、去重——删除重复行
场景:商品采集时因为翻页重复抓了同一商品,需要去重。
# 根据所有列去重(完全相同的行)
df_unique = df.drop_duplicates()
# 根据特定列去重(比如商品ID)
df_unique = df.drop_duplicates(subset=['商品ID'])
# 保留第一次出现的重复(默认),保留最后一次
df_unique = df.drop_duplicates(subset=['商品ID'], keep='last')
六、合并——把多个表格拼在一起
场景:分页采集了10个Excel文件,或者采集了多个关键词的结果,要合并成一个总表。
# 纵向拼接(行数增加,列数不变)
df_total = pd.concat([df1, df2, df3], ignore_index=True)
# 横向拼接(列数增加,按行索引对齐)
df_combined = pd.concat([df1, df2], axis=1)
# 按某个键合并(类似Excel的VLOOKUP)
# df1有商品ID和标题,df2有商品ID和价格,合并起来
df_merged = pd.merge(df1, df2, on='商品ID', how='left')
how参数:
left:以左边表格为准,右边没有的填NaNright:以右边为准inner:只保留两边都有的outer:保留所有行
七、分组统计——按店铺汇总销量
场景:想知道每个店铺的总销量、平均价格。
# 按店铺分组,计算销量总和、价格平均值
grouped = df.groupby('店铺').agg({
'销量': 'sum',
'价格': 'mean',
'商品ID': 'count' # 统计每个店铺的商品数量
}).reset_index()
常用聚合函数:sum、mean、max、min、count、nunique(去重计数)
八、写入Excel——把处理后的数据保存
# 直接覆盖写入
df.to_excel('结果.xlsx', index=False) # index=False不写索引列
# 写入指定sheet
with pd.ExcelWriter('结果.xlsx') as writer:
df.to_excel(writer, sheet_name='筛选后', index=False)
df2.to_excel(writer, sheet_name='原始数据', index=False)
# 追加到已有Excel(不覆盖)
with pd.ExcelWriter('已有文件.xlsx', mode='a', if_sheet_exists='replace') as writer:
df.to_excel(writer, sheet_name='新数据', index=False)
影刀专属注意:
写出的Excel文件如果被影刀打开着,会报错。写之前先关闭影刀里的Excel。
九、完整实战:采集数据后用Pandas清洗
# === 在影刀Python代码指令里 ===
import pandas as pd
# 1. 读取原始采集数据(假设影刀已经用“读取区域”读到了一个二维列表)
# 这里演示从Excel读
df = pd.read_excel("C:/raw_data.xlsx")
# 2. 数据清洗
# 去掉价格为空的行
df = df.dropna(subset=['价格'])
# 去掉销量为0的商品
df = df[df['销量'] > 0]
# 将价格字符串转数字(如"¥129.00" -> 129.00)
df['价格'] = df['价格'].str.replace('¥', '').str.replace('元', '').astype(float)
# 按销量降序排序
df = df.sort_values('销量', ascending=False)
# 去重(按商品标题)
df = df.drop_duplicates(subset=['标题'])
# 3. 写入新文件
df.to_excel("C:/cleaned_data.xlsx", index=False)
# 4. 输出统计信息到影刀日志
print(f"原始数据{len(df)}行,清洗后{len(df)}行,总销量{df['销量'].sum()}")
十、Pandas vs 影刀原生指令性能对比
| 操作 | 1000行数据 | 10000行数据 |
|---|---|---|
| 影刀循环筛选 | 2-3秒 | 30秒以上 |
| Pandas筛选 | 0.05秒 | 0.2秒 |
| 影刀去重(多个“删除重复行”指令) | 5秒 | 卡死 |
| Pandas去重 | 0.02秒 | 0.1秒 |
| 影刀合并多个表格 | 手动操作慢 | 不可行 |
| Pandas合并 | 0.1秒 | 0.5秒 |
结论:数据量超过500行,无脑上Pandas。
常见问题速查
| 问题 | 原因 | 解决方法 |
|---|---|---|
import pandas as pd报错ModuleNotFoundError | 影刀环境没装pandas | 打开命令行,找到影刀Python路径,执行pip install pandas |
| 读取Excel报错“No module named 'openpyxl'” | 缺少读取.xlsx的引擎 | pip install openpyxl |
| 中文列名筛选时报错 | 列名有空格或特殊字符 | 用df['列名'],列名前后不要有空格 |
df['价格'] > 100报错TypeError | 价格列是字符串 | 先转数字:df['价格'] = pd.to_numeric(df['价格'], errors='coerce') |
| 写入Excel后打开乱码 | 编码问题 | 加参数encoding='utf-8-sig' |
| 社区版跑Pandas会扣时长吗 | Python代码指令本身不扣时长 | 放心用,但pd.read_excel读取大文件会花几秒,这几秒会计入 |
推荐资源
- 安装Pandas教程:B站搜“影刀RPA安装第三方库”,2分钟搞定。
- 官方文档:pandas.pydata.org (看“Getting started”就够了)。
- 我的学习路径:只学
read_excel、drop_duplicates、sort_values、query(筛选)、groupby,应付了90%场景。 - 扩展阅读:系列第12篇《Python代码指令做数据清洗》——Pandas之前的必学基础。
作者:林焱
本文为《影刀RPA学习手册》系列文章之一,内容源于实操经验的整理与分享。
