当前位置: 首页 > news >正文

Airtable与Python:轻量级ETL数据管道实战

引言

Airtable 不仅提供灵活的类似电子表格的界面,用于数据存储和分析,还提供了 API 以支持编程式交互。换句话说,你可以将它与外部工具和技术(例如 Python)连接起来,构建数据管道或处理流程,并将结果返回 Airtable 数据库(在 Airtable 术语中称为 "base")。

本文演示如何利用 Airtable Python API 创建一个简易的、类似 ETL 的数据管道。我们将坚持使用免费版本,以确保该方法在不依赖付费功能的情况下也能正常运行。


Airtable 数据集设置

本文所构建的管道可以轻松适配不同数据集。对于尚不熟悉 Airtable 的新用户,如果需要一个 Airtable 项目及示例数据集作为起点,我们建议你先参考最新的 Airtable 入门教程,并创建一个名为 “Customers” 的表格数据集,包含 200 行以及以下列(见图):

  • CustomerID
  • Gender
  • Age
  • Annual Income (k$)
  • Spending Score (1-100)
  • Income Class

Airtable-Python 数据管道

在 Airtable 中,点击界面左下角的头像图标,选择 “Builder Hub”。进入新页面后,点击 “Personal access tokens”“Create token”。设置一个名称,并确保至少包含以下 2 个权限范围:

  • data.records:read
  • data.records:write

“Access” 部分中选择你的 Customers 表所在的 base,以便令牌可以访问指定数据集。

生成令牌后,请将其复制并安全保存,因为它只会显示一次。该令牌以 pat 开头,后跟一长串字母数字组合。

另一个关键参数是 Base ID。在 Airtable 网页版中,打开你的 base,浏览器 URL 大致为:

https://airtable.com/app[xxxxxx]/xxxx/xxxx

其中 app[xxxx] 即为我们需要的 Base ID。

假设你已在 base 中创建并填充了 "Customers" 表,现在我们即可开始编写 Python 程序。以下示例使用 Jupyter Notebook 演示,若使用 IDE,可将环境变量写入 .env 文件读取。

首先安装必要依赖:

!pip install pyairtable python-dotenv

设置环境变量与建立连接

import os
from dotenv import load_dotenv  # 若使用 .env 文件需启用
from pyairtable import Api, Table
import pandas as pdPAT = "pat-xxx"       # 替换为你的个人访问令牌
BASE_ID = "app-xxx"   # 替换为你的 Base ID
TABLE_NAME = "Customers"api = Api(PAT)
table = Table(PAT, BASE_ID, TABLE_NAME)

此时我们已成功实例化 Python Airtable API 并连接到 Customers 表。


读取数据至 Pandas

rows = []
for rec in table.all():  # 自动处理速率限制,出错重试fields = rec.get("fields", {})rows.append({"id": rec["id"],"CustomerID": fields.get("CustomerID"),"Gender": fields.get("Gender"),"Age": fields.get("Age"),"Annual Income (k$)": fields.get("Annual Income (k$)"),"Spending Score (1-100)": fields.get("Spending Score (1-100)"),"Income class": fields.get("Income Class"),})df = pd.DataFrame(rows)

数据转换:标记高价值客户

我们只进行一个简单的转换:根据收入和消费评分生成二元标签属性 “Is High Value”,标识高价值客户。

def high_value(row):try:return (row["Spending Score (1-100)"] >= 70) and (row["Annual Income (k$)"] >= 70)except TypeError:return Falsedf["Is High Value"] = df.apply(high_value, axis=1)
df.head()

写回 Airtable

在写入新数据之前,需在 Airtable 的 Customers 表中新建一个名为 “High Value” 的复选框字段,作为二元属性存储。

updates = []
for _, r in df.iterrows():if pd.isna(r["id"]):continueupdates.append({"id": r["id"],"fields": {"High Value": bool(r["Is High Value"])}})if updates:table.batch_update(updates)

执行后回到 Airtable,你会看到 Customers 表新增了 “High Value” 标签,有部分客户被标记为高价值(复选框打勾)。


总结

本文展示了如何借助 Airtable Python API 构建一个轻量级 ETL 管道:

  • 从 Airtable 读取数据
  • 使用 Pandas 进行简单转换
  • 将新数据反写回 Airtable

这一流程完全在 Airtable 免费版本的限制内实现,凸显了 Airtable 作为云端数据平台的灵活性与易用性。


文章转载自:

http://QuegnXHU.yfqhc.cn
http://X6L0Q1EE.yfqhc.cn
http://k93lE6AC.yfqhc.cn
http://Y0pVx7RY.yfqhc.cn
http://FhQxd1da.yfqhc.cn
http://R1oh2ldn.yfqhc.cn
http://t4ROtivg.yfqhc.cn
http://H1sZaZKe.yfqhc.cn
http://Xk1AYFlt.yfqhc.cn
http://B5h2SWKU.yfqhc.cn
http://ifRLydlC.yfqhc.cn
http://vF7ARxlA.yfqhc.cn
http://imEpgpMh.yfqhc.cn
http://d4UWziQv.yfqhc.cn
http://rAtmdotF.yfqhc.cn
http://cFHAJ4d9.yfqhc.cn
http://Y0mCKcry.yfqhc.cn
http://TPyH1Gmx.yfqhc.cn
http://FUXUq5W9.yfqhc.cn
http://sJ5oGMdS.yfqhc.cn
http://ChVhHP5Y.yfqhc.cn
http://mZbuhh02.yfqhc.cn
http://XI12ritd.yfqhc.cn
http://bAywFKJe.yfqhc.cn
http://B3LIzewD.yfqhc.cn
http://DiZZHBvM.yfqhc.cn
http://jxQjt3r7.yfqhc.cn
http://Dt9kphzA.yfqhc.cn
http://nYa8S0OJ.yfqhc.cn
http://oELJrtdB.yfqhc.cn
http://www.dtcms.com/a/381883.html

相关文章:

  • JavaScript 对象:一份全面的回顾
  • 逐时nc数据批量处理为日平均
  • ffmpeg推流测试
  • SQL注入常见攻击点与防御详解
  • 后端(FastAPI)学习笔记(CLASS 3):Tortoise ORM
  • C++-STL
  • Java 大视界 -- Java 大数据在智能家居场景联动与用户行为模式挖掘中的应用
  • XCKU15P-2FFVA1760I AMD 赛灵思 Xilinx Kintex UltraScale+ FPGA
  • 图论基础知识
  • DMA硬件架构解析:总线矩阵与核心组件
  • 从军用到掌心:固态硬盘(SSD)的演进与革命
  • 通俗解释redis高级:redis持久化(RDB持久化、AOF持久化)、redis主从、redis哨兵、redis分片集群
  • 【C++】类和对象——(上)
  • 解决Windows系统“‘php‘ 不是内部或外部命令”报错的完整指南
  • 用 Go 打造一个服务器资源指标采集器:结合 Prometheus Exporter 实战
  • Unity学习----【进阶】TextMeshPro学习(二)--进阶知识点(样式表,颜色渐变预设,精灵图片资源)
  • 从理论到落地:神经网络稀疏化设计构架中网络剪枝的深度实践与创新
  • ARM、AArch64、amd64、x86_64、x86有什么区别?
  • 机器学习项目-南方电网电力负荷预测
  • python标准库有哪些模块,简单总结下。
  • 文献阅读·MCformer:基于混合通道变换的多变量时间序列预测
  • 【软件操作】飞牛nas系统:笔记本息屏、合盖均不关机
  • 【SPI】【二】SPI控制器驱动代码详解
  • pandas读取复合列名列头及数据和处理
  • jenkins触发部署
  • 【pure-admin】项目登录验证码实现分析
  • Docker快速入门手册
  • 【C++设计模式】第五篇:装饰器模式
  • linux C 语言开发 (十) 进程间通讯--信号
  • 绿色环保活动平台(AI问答、WebSocket即时通讯、协同过滤算法、Echarts图形化分析)