本文最后更新于 265 天前,其中的信息可能已经有所发展或是发生改变。
1. 配置tableau prep应用tabpy
1) python环境配置
# 下载tabpy模块
pip install tabpy
2)启动tabpy,在终端输入tabpy,按下回车
在代码的最后面会显示端口号,如图为9004
# 注:在使用期间切勿关闭步骤1中运行tabpy的终端
2)打开tableau prep,点击帮助——设置和性能——管理分析扩展程序连接
3)设置连接tabpy,选择如图所示TabPy服务器
如果步骤1)是在本地启动的,其中服务器及端口选项为localhost及9004,其他选项空白即可
后点击登陆
4)在清理过后的数据中添加脚本
点击脚本,并在主界面左下脚选择python服务器
2. 配置所需要的.py文件
1)数据源展示
2)新建python文件,名称任意,但不建议包含中文及特殊字符
# 首先需要导入pandas包
# 如果没有,则 pip install pandas
import pandas as pd
# 定义如下函数,名称可任意
# 其中input便为输入表的DataFrame,之后的操作基于input操作即可
# 测试增加'测试增加'这一列,且数据全为0
def encode(input):
input['测试增加'] = 0
return pd.DataFrame(input)
# 定义输出字段格式函数
# 在encode函数的return表中的每一字段的格式都需要与tableau格式对齐
# 在字典中的键需要与encode输出的字段名一致
def get_output_schema():
return pd.DataFrame({
'店仓编号': prep_string(),
'店仓名称': prep_string(),
'测试增加': prep_int()
})
# 保存
# 对齐方式如下表
Python 中的函数 | 生成的数据类型 |
---|---|
prep_string() | 字符串 |
prep_decimal() | 十进制 |
prep_int() | 整数 |
prep_bool() | 布尔值 |
prep_date() | 日期 |
prep_datetime() | 日期时间 |
3)encode其他写法供参考
def encode(input):
input['测试增加'] = 0
return pd.DataFrame({
'店仓编号new': input['店仓编号'],
'店仓名称new': input['店仓名称'],
'测试增加new': input['测试增加']
})
3. 在tableau prep中连接
1)选择3中保存的文件,并输入操作数据的函数名
2)点击回车便可看到数据已经更改成功啦!