一个Hy库,它通过包装Python流行的数据库(如Pandas和Matplotlib)来提供Lispy函数接口。

dev-aa-test-1的Python项目详细描述


HyFive公司

什么是HyFive?在

HyFive是一个Hy库,它通过包装Python流行的数据库(如PandasMatplotlib)来提供一个Lispy函数接口。在

HyFive vs.香草熊猫

熊猫有自己的怪癖。它的范围从没有filter方法到对join与SQL有不同的定义。这从Pandas and SQL之间令人困惑的比较中可以看出。HyFive的目标是提供一个尽可能接近Spark'sSQL and DataFrame的Lispy接口。在

从函数式编程的角度来看,Pandas接口很难组合,这与sparksql的方法链接约定不同。由于这一困难,Pandas经常不正当地鼓励数据帧的短名称,而倾向于创建中间变量,这会造成名称空间的混乱。在

HyFive使用Hy的线程宏来模拟Spark DataFrame的方法链接约定,同时使用熟悉的Pandas数据帧。考虑下面的HyFive片段:

(setvDATAFRAME(->NAME-REGISTRY(hf.with-column"variant"(let[mod-res-id(hf.mod"resident_id"3)](hf.cond-col[(hf.eq?mod-res-id1)(hf.lit"a")][(hf.eq?mod-res-id2)(hf.lit"b")][:else(hf.lit"c")])))(hf.filter(hf.is-in"variant"["a""b"]))(hf.joinAGE-REGISTRY:on"resident_id")(hf.group-by"variant")(hf.agg{"min_age"(hf.min"age")"mean_age"(hf.mean"age")"std_age"(hf.std"age")"max_age"(hf.max"age")})(hf.order-by"min_age":descTrue)))

在这里,我们执行添加列、筛选行、连接表、聚合组和排序行的简单操作。除了Lispycond,这些操作将有一对一的转换来Spark dataframe或SQL。在

相比之下,在纯熊猫身上则需要更加努力:

^{pr2}$

Pandas版本的可读性较差,我们失去了Spark dataframe或SQL的一对一转换。在

尝试HyFive

克隆存储库,并在的根目录上,在终端上输入以下命令:

./run build-docker

使用以下命令运行单元测试:

./run unit-tests .

通过运行以下命令调用Hy REPL:

./run repl

最后,使用以下方法导入HyFive:

(import[hyfive:ashf])

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何使用Java中的扫描仪读取文本文件中的特定字符?   java如果我们在hibernate中开始事务但不提交它,会发生什么?   Azure CosmosDB Java Springboot中的无服务器帐户不支持spring boot设置提供吞吐量或容器自动导航   附加到新对象的Java注释?   java如何将自定义文本视图添加到。在Kotlin中添加通知操作   java Shibboleth添加_OpenSAMLcookies,导致HTTP头大小>8k   分布式传感器数据(~40Hz)的高效Java观测器设计   java如何在while循环外声明数组,但在while循环中初始化它?   用@XmlElementRef注释的java元素没有显示在JAXB编组字符串中?   java替换二维数组的值   java如何在任务栏上创建Windows7加载栏   java如何在组件注释bean中使用会话或RequestScope bean?   java netbeans freermarker插件错误:在实现版本中请求netbeans桥的插件Lexer   java谷歌地图方向。加载失败,返回服务器错误   java当我试图递归地计算两个值之间的整数之和时,为什么结果返回一个奇怪的值?   java如何通过html文件的用户获取运行时输入,以使用Jsoup进行解析?