一个面向sql的python数据分析库。

faro的Python项目详细描述


概述

faro是python sqlite api的包装器,旨在成为python的sql驱动的数据分析库。它旨在补充Python ECO系统中现有的数据分析包,如^ {< CD2> }和^ {CD3}}。使用faro可以使用纯sql处理内存中的表对象集合,并在需要时轻松与numpypandas进行互操作。最后,faroIPython配合得很好,因此您可以轻松地交互和探索查询结果。

用法

创建一个Database对象并给它命名。

fromfaroimportDatabasedb=Database('transportation')

要向内存数据库中添加表,只需指定文件名。支持的文件类型包括:csvjsonxlsxadd_table将文件的内容插入数据库中的新表中。它可以自动检测文件类型并相应地解析文件内容。在本例中,我们加载两个不同的表,一个是csv格式的,另一个是json格式的。

db.add_table('cars.json',name='cars')db.add_table('airports.csv',name='airports')

我们还可以直接传递要添加到数据库中的pandas.DataFramefaro.Table对象。在处理特定文件的更复杂解析时,一个有用的模式是使用pandas将其读入内存,然后将DataFrame添加到faro.Database

buses=pd.DataFrame({'id':[1,2,3,4,5],'from':['Houston','Atlanta','Chicago','Boston','New York'],'to':['San Antonio','Charlotte','Milwaukee','Cape Cod','Buffalo']})db.add_table(buses,name='buses')

我们现在可以使用纯sql查询数据库中的任何表,并且可以在jupyter笔记本中轻松地与结果交互。

sql="""SELECT iata,       name,       city,       state  FROM airports WHERE country = 'USA' LIMIT 5"""db.query(sql)
iatanamecitystate
000MThigpenBay SpringsMS
100RLivingston MunicipalLivingstonTX
200VMeadow LakeColorado SpringsCO
301GPerry-WarsawPerryNY
401JHilliard AirparkHilliardFL

如果我们想与查询返回的数据交互,我们可以很容易地将其转换为最适合这种情况的任何数据类型。支持的类型转换包括:List[Tuple]Dict[List]numpy.ndarraypandas.DataFrame

table=db.query(sql)type(table)>>>faro.table.Tabledf=table.to_dataframe()type(df)>>>pandas.core.frame.DataFramematrix=table.to_numpy()type(matrix)>>>numpy.ndarray

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

推荐PyPI第三方库


热门话题
为什么sonar认为这个表达式总是错误的   java为什么PrintWriter不能工作?   java将数组从php发送到安卓 studio   java在静态方法中调用非静态方法   java何时使用Swingutiles。invokeAndWait/invokeLater   java jdbc:embeddeddatabase引发HsqlException   java度量Hyperledger结构项目的性能   java将字符串转换为Blob   java如何将文本添加到文本区域而不是替换它   java如何对100GB的字符串进行排序   发生异常错误::java。lang.OutOfMemoryError:Java堆空间   安卓 studio java。lang.NoClassDefFoundError:org。slf4j。帮手。消息格式化程序   当从命令promt运行时,java maven不是运行主类   用于翻转其余端点的功能的java注释   Oracle函数中的java默认值   java如何访问maven。建筑Quarkus中用于资源筛选的时间戳   java如何在一个JText区域中显示大量值JTable选定行   如何在java中用约束注释web服务参数?   java为了获得流信息,我们应该向userFriendlySelector函数传递哪些参数   java Google GSON嵌套哈希映射反序列化