一个面向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第三方库


热门话题
在java中,如何使用lambda表达式按月计算排名?   java如何更改createTempFile中的默认名称?   java无法找到或加载主类net。Fabrimc。德夫朗。主织物   java如何将应用程序绑定到端口161?   使用Spring Boot运行基于Flyway Java的回调   java如何将源代码库添加到IntelliJ(例如来自Github)?   用于MacOSX上应用程序打包的DMG后台java自定义下拉图标   Java泛型和返回类型   java Docker volume mapping+windows=难以置信的慢?   java gwt gxt文本字段。强制无效   试图使用Map<Class,Function<T,R>>替换Java8中的instanceOf,无法放入映射   java Spring SpEL错误   java如何格式化输出值?   java异步HTTP请求,排队请求   带有Kafka、ClassCastException的java Avro模式?   io我们是否需要在java中为Windows和linux提供单独的文件路径   哈姆克雷斯特爪哇。util。IllegalFormatFlagsException:标志=“”   java组合框所选项目   java如何停止程序以等待用户操作?