Python和RPA什么关系?

简介: Python和RPA什么关系?

1、什么时候会用到RPA?

比如你的财务同事需要做财务对账,发票报销,税务申报等,这些流程看似容易,其实到操作层面很繁琐细碎,而且大多是重复性操作。

如果人工来处理财务之类的数据,很浪费时间,而RPA可以搭建一整套财务自动化的系统,从数据采集、存储、整合、分析、输出都帮你串起来,既节省了人力又极大的避免人为出错。

你可以把这个流程放到任何业务场景上,人力资源、供应链、保险理赔、设备管理等,都有RPA的用武之地。

这就是RPA,obotic process automation,机器人流程自动化。 856f7aa712c2938e93bf359a1f18023b.jpg

2、什么是RPA技术?

RPA是一种模仿人类与软件交互方式的技术,用于执行大批量、可重复的任务,特别是财务、供应链之类的重复流程化业务。

你的IPhone上的快捷指令也是一种RPA,通过一系列指令的设置,实现自动化操作某个复杂任务。 c72bfc32124d7096c3bf4cbc0bf88dbd.jpg

RPA的一大特点是无代码或者低代码开发,RPA 能够复制人类执行基于计算机的流程的方式,你只需要在自动化软件上设置好流程和步骤,就可以实现复杂的操作。

最简单的 RPA 机器人是通过记录用户与应用程序交互时的点击和按键来创建的,比如刚说的手机上的快捷指令。

3、Python是否可以替代RPA呢?

并不能!!!

Python只是一种编程语言,你可以用它来编写一套RPA程序,但这个建立在你的Python能力非常NB的基础上,而且你要懂RPA涉及到的各种复杂的流程、技术和逻辑。

所以说RPA并不是Python,也不是编程,它是一套完整的自动化系统,涉及业务流程、接口协议、通信机制、ETL、数据库管理、数据建模、数据安全等等。

其中尤其要注意,设计一套RPA,对于业务流程需要很深的研究。

比如你想做个保单管理的RPA系统,首先你得要知道保单哪些环节可以通过RPA来提升效率,比如保单录入、更新、查询、续保、理赔等流程,这些流程涉及到用户的哪些数据、这些数据在哪些系统里等等,都需要很专业的保险行业知识。

所以单纯地以为学会Python,就不需要RPA,其实是不懂RPA。

当然你可以通过Python脚本开发一些简单的自动化工具,比如文档转换、网络爬虫、生成报表、图像处理等等,这些都可以通过相应的Python库很快地实现。

4、使用Python开发简单的自动化报表程序

下面举个例子:

你作为数据分析师,每周定期为公司基金销售数据制作报表 该报表包含以下内容:

  1. 绘制月度销售额趋势图
  2. 绘制基金产品销售额分布图
  3. 绘制未来6个月基金销售额预测趋势图

要求在excel中自动执行Python代码,每次更新数据只要点击xlwings插件执行即可。

xlwings是Python的第三方库,用来操作Excel,也有Excel的插件。

步骤如下:

「1. 在excel中调用Python脚本」

直接在命令行输入以下代码即可:

xlwings quickstart fund_sales

如果你想把文件创建到指定文件夹里,需要提前将命令行导航到指定目录。

创建好后,在fund_sales文件夹里会出现两个文件,.xlsm和.py文件。

eb1f77075bdee714d1bbcf6c0788e843.jpg

「2. 编写Python脚本」

打开.py文件里在main函数里面写python代码,功能是为公司基金销售数据制作报表。

(其他代码不用动)

代码见下方

「3. 代开xlsm文件,点击run main,就会直接运行python脚本,就会自动制作报表」

bac91cfd7ea0486cc2a5e9cebc2de0d5.jpg

代码如下:

import xlwings as xw
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
import seaborn as sns
plt.rcParams["font.sans-serif"]=["SimHei"] # 设置字体
plt.rcParams["axes.unicode_minus"]=False # 该语句解决图像中的“-”负号的乱码问题
def main():
    # 打开Excel文件
    wb = xw.Book.caller()
    sheet = wb.sheets[0]
 
    # 读取基金销售数据
    data = sheet.range('A1').options(expand='table').value
    # 将数据转换为Pandas DataFrame
    df = pd.DataFrame(data[1:], columns=data[0])
    df['月'] = df['日期'].dt.month
    df['年'] = df['日期'].dt.year
    # 绘制基金销售额月度趋势图
    monthly_sales = df.groupby(['年', '月']).agg({'销售额': 'sum'}).reset_index()
    monthly_sales['日期'] = pd.to_datetime(monthly_sales['年'].astype(str) + '-' + monthly_sales['月'].astype(str), format='%Y-%m')
    monthly_sales = monthly_sales.sort_values('日期')
    fig1, ax1 = plt.subplots()
    sns.lineplot(x='日期', y='销售额', data=monthly_sales)
    ax1.set(xlabel='日期', ylabel='销售额', title='基金销售额月度趋势图')
    plt.xticks(rotation=45)
    sheet.pictures.add(fig1, name='基金销售额月度趋势图', update=True, left=sheet.range('D2').left, top=sheet.range('D2').top)
    # 绘制基金产品销售额分布图
    fund_sales = df.groupby('基金名称').agg({'销售额': 'sum'}).reset_index()
    fig2, ax2 = plt.subplots()
    sns.barplot(x='销售额', y='基金名称', data=fund_sales)
    ax2.set(xlabel='销售额', ylabel='基金名称', title='基金产品销售额分布图')
    sheet.pictures.add(fig2, name='基金产品销售额分布图', update=True, left=sheet.range('D20').left, top=sheet.range('D20').top)
    # 搭建线性回归模型,用于预测未来6个月的销售额
    x = monthly_sales.index.values.reshape(-1, 1)
    y = monthly_sales['销售额'].values
    model = LinearRegression()
    model.fit(x, y)
    # 预测未来6个月销售额
    future_months = 6
    last_month = monthly_sales['日期'].max().to_period('M').to_timestamp().to_pydatetime()
    next_months = pd.date_range(start=last_month, periods=future_months+1, freq='M')[1:]
    next_months_index = np.arange(len(monthly_sales), len(monthly_sales)+future_months)
    next_months_df = pd.DataFrame({'日期': next_months, '销售额': [np.nan]*future_months, '年': next_months.year, '月': next_months.month})
    next_months_df['预测销售额'] = model.predict(next_months_index.reshape(-1, 1))
    monthly_sales_pred = pd.concat([monthly_sales, next_months_df], ignore_index=True)
    # 绘制未来6个月基金销售额预测趋势图
    fig3, ax3 = plt.subplots()
    sns.lineplot(x='日期', y='销售额', data=monthly_sales_pred,label='销售额',)
    sns.lineplot(x='日期', y='预测销售额', data=monthly_sales_pred,label='预测销售额')
    ax3.set(xlabel='日期', ylabel='销售额', title='未来6个月基金销售额预测趋势图')
    plt.xticks(rotation=45)
    sheet.pictures.add(fig3, name='未来6个月基金销售额预测趋势图', update=True, left=sheet.range('D40').left, top=sheet.range('D40').top)
@xw.func
def hello(name):
    return f"Hello {name}!"
if __name__ == "__main__":
    xw.Book("PythonExcelTest.xlsm").set_mock_caller()
    main()

这就使用Python创建了一个简单的RPA程序,用来自动化使用基金数据创建报表。

相关实践学习
基于阿里云短信服务的防机器人验证
基于阿里云相关产品和服务实现一个手机验证码登录的功能,防止机器人批量注册,服务端采用阿里云ECS服务器,程序语言选用JAVA,服务器软件选用Tomcat,应用服务采用阿里云短信服务,
相关文章
|
22天前
|
存储 程序员 开发者
Python编程基础:从入门到实践
【10月更文挑战第8天】在本文中,我们将一起探索Python编程的奇妙世界。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的信息。我们将从Python的基本概念开始,然后逐步深入到更复杂的主题,如数据结构、函数和类。最后,我们将通过一些实际的代码示例来巩固我们的知识。让我们一起开始这段Python编程之旅吧!
|
11天前
|
安全 数据处理 开发者
Python中的多线程编程:从入门到精通
本文将深入探讨Python中的多线程编程,包括其基本原理、应用场景、实现方法以及常见问题和解决方案。通过本文的学习,读者将对Python多线程编程有一个全面的认识,能够在实际项目中灵活运用。
|
5天前
|
设计模式 开发者 Python
Python编程中的设计模式:工厂方法模式###
本文深入浅出地探讨了Python编程中的一种重要设计模式——工厂方法模式。通过具体案例和代码示例,我们将了解工厂方法模式的定义、应用场景、实现步骤以及其优势与潜在缺点。无论你是Python新手还是有经验的开发者,都能从本文中获得关于如何在实际项目中有效应用工厂方法模式的启发。 ###
|
10天前
|
弹性计算 安全 小程序
编程之美:Python让你领略浪漫星空下的流星雨奇观
这段代码使用 Python 的 `turtle` 库实现了一个流星雨动画。程序通过创建 `Meteor` 类来生成具有随机属性的流星,包括大小、颜色、位置和速度。在无限循环中,流星不断移动并重新绘制,营造出流星雨的效果。环境需求为 Python 3.11.4 和 PyCharm 2023.2.5。
|
3天前
|
数据处理 Python
从零到英雄:Python编程的奇幻旅程###
想象你正站在数字世界的门槛上,手中握着一把名为“Python”的魔法钥匙。别小看这把钥匙,它能开启无限可能的大门,引领你穿梭于现实与虚拟之间,创造属于自己的奇迹。本文将带你踏上一场从零基础到编程英雄的奇妙之旅,通过生动有趣的比喻和实际案例,让你领略Python编程的魅力,激发内心深处对技术的渴望与热爱。 ###
|
6天前
|
数据采集 机器学习/深度学习 人工智能
Python编程入门:从基础到实战
【10月更文挑战第24天】本文将带你进入Python的世界,从最基础的语法开始,逐步深入到实际的项目应用。我们将一起探索Python的强大功能和灵活性,无论你是编程新手还是有经验的开发者,都能在这篇文章中找到有价值的内容。让我们一起开启Python的奇妙之旅吧!
|
8天前
|
设计模式 监控 数据库连接
Python编程中的设计模式之美:提升代码质量与可维护性####
【10月更文挑战第21天】 一段简短而富有启发性的开头,引出文章的核心价值所在。 在编程的世界里,设计模式如同建筑师手中的蓝图,为软件的设计和实现提供了一套经过验证的解决方案。本文将深入浅出地探讨Python编程中几种常见的设计模式,通过实例展示它们如何帮助我们构建更加灵活、可扩展且易于维护的代码。 ####
|
5天前
|
数据库 开发者 Python
“Python异步编程革命:如何从编程新手蜕变为并发大师,掌握未来技术的制胜法宝”
【10月更文挑战第25天】介绍了Python异步编程的基础和高级技巧。文章从同步与异步编程的区别入手,逐步讲解了如何使用`asyncio`库和`async`/`await`关键字进行异步编程。通过对比传统多线程,展示了异步编程在I/O密集型任务中的优势,并提供了最佳实践建议。
10 1
|
8天前
|
存储 人工智能 数据挖掘
Python编程入门:构建你的第一个程序
【10月更文挑战第22天】编程,这个听起来高深莫测的词汇,实际上就像搭积木一样简单有趣。本文将带你走进Python的世界,用最浅显的语言和实例,让你轻松掌握编写第一个Python程序的方法。无论你是编程新手还是希望了解Python的爱好者,这篇文章都将是你的理想起点。让我们一起开始这段奇妙的编程之旅吧!
13 3
|
8天前
|
Python
Python编程中正则表达式的使用
【10月更文挑战第22天】正则表达式,一种强大的文本处理工具,在Python编程中有着广泛的应用。本文将介绍如何使用Python中的re库来使用正则表达式,包括如何创建、匹配、查找和替换字符串等。通过学习本文,你将能够掌握Python中正则表达式的基本使用方法。