Temporian是一个用于Python中时间数据安全、简单和高效预处理和特征工程的库。Temporian支持多变量时间序列、多变量时间序列、事件日志和跨源事件流。
Temporian之于时间数据,就如同Pandas之于表格数据。
主要特点
-
支持大多数类型的时间数据 📈:处理均匀采样和非均匀采样数据,单变量和多变量数据,平面和多索引数据,以及单源和多源非同步事件。
-
针对时间数据优化 🔥:Temporian的核心计算使用C++实现,并针对时间数据进行了优化。在处理时间数据时,Temporian可能比现成的数据处理库快1000倍以上。
-
易于整合到现有的机器学习生态系统中:Temporian不执行任何机器学习模型训练 - 相反,它可以无缝集成到任何机器学习库中,如PyTorch、Scikit-Learn、Jax、TensorFlow、XGBoost或Yggdrasil Decision Forests。
-
防止意外的未来数据泄露 😰:除非使用
tp.leak
明确指定,否则特征计算不能依赖于未来数据,从而防止意外的、难以调试的、可能代价高昂的未来数据泄露。
快速入门
安装
通过PyPI使用pip
安装Temporian:
pip install temporian -U
Temporian目前可用于Linux和MacOS(ARM和Intel)。Windows支持正在开发中。
最小示例
考虑包含timestamp
、store
和revenue
的单个销售记录。
$ cat sales.csv
timestamp,store,revenue
2023-12-04 21:21:05,STORE_31,5071
2023-11-08 17:14:38,STORE_4,1571
2023-11-29 21:44:46,STORE_49,6101
2023-12-20 18:17:14,STORE_18,4499
2023-12-15 10:55:09,STORE_2,6666
...
我们的目标是计算每个工作日(不包括周末)晚上11点每个商店的收入总和。
首先,我们加载数据并列出工作日。
import temporian as tp
# 加载销售交易
sales = tp.from_csv("sales.csv")
# 按商店索引销售
sales_per_store = sales.add_index("store")
# 列出工作日
days = sales_per_store.tick_calendar(hour=22)
work_days = (days.calendar_day_of_week() <= 5).filter()
work_days.plot(max_num_plots=1)
然后,我们汇总每个工作日和每个商店的日收入。
# 按商店和工作日汇总收入
daily_revenue = sales_per_store["revenue"].moving_sum(tp.duration.days(1), sampling=work_days).rename("daily_revenue")
# 绘制结果
daily_revenue.plot(max_num_plots=3)
最后,我们可以将结果导出为Pandas DataFrame,以便进一步处理或供其他库使用。
tp.to_pandas(daily_revenue)
查看入门教程了解更多信息!
后续步骤
新用户应参考入门指南,它提供了Temporian关键概念和操作的快速概述。
之后,访问用户指南深入了解Temporian的主要概念、运算符、约定和实践。要获得实践学习体验,可以学习教程或参考API参考。
如果你需要帮助、有问题、想贡献或只是想成为Temporian社区的一部分,我们鼓励你加入我们的Discord服务器!🤝🏼
文档
文档📚可在temporian.readthedocs.io获取。入门指南是开始的最佳方式。
贡献
欢迎对Temporian做出贡献!查看贡献指南开始。
致谢
Temporian是由谷歌和Tryolabs合作开发的。