UiPath to Invoke Python Pandas to Achieve DataTable GroupBy

想解决 UiPath 自带 activity 无法 groupby 的问题很久了。

要先装好 pandas,xlrd,openpyxl。

import pandas as pd
def get_groupby():
    # Create a Pandas dataframe from the data.
    df = pd.read_excel('Book1.xlsx', 'Segment')

    split = df.groupby(['Product', 'Segment', 'Geography']).sum()

    # Create a Pandas Excel writer using XlsxWriter as the engine.
    writer = pd.ExcelWriter('Book2.xlsx')

    # Convert the dataframe to an XlsxWriter Excel object.
    split.to_excel(writer, sheet_name='GroupBy')

    # Close the Pandas Excel writer and output the Excel file.
    writer.save()

get_groupby()

然后是 UiPath 的部分,怎么去 invoke Python code 简直就是谜一般,发了个 ticket 去要 example 才懂怎么用。

首先是必须要有一个 Python Scope,定义好 path 和 version。

然后 Load Python Script,选择对应的*.py 文件,output 为一个 python 的 instance,Variable Type 是 PythonObject。

然后通过 Invoke Python Method,执行某一个 method,导入上一步建立的 Instance,define 具体执行哪个 method,需要哪些输入变量,最后输出为 PythonObject。

如果有需要,可以把得到的 PythonObject 再输出出来,这时候需要用 Get Python Object,指定数据类型即可。目前猜测, 并不是所有数据类型都可以 get 出来的,简单的 string、int 应该没问题。

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.