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


热门话题
swing为什么不能在java类中隐藏JFrame   java编辑文本。getText()可能会产生NullPointerException   java通过蓝牙将字符串从PC作为客户端发送到移动服务器   从MySql表生成DAO的Pojo和JSP的java工具/Eclipse插件?   java不能调用匿名类方法   错误:更新Xss Eclipse后找不到或加载主类java   java Bukkit检查玩家的库存   java从FacesContext获取Webflow requestScope值   在SharedReferences中存储hashmap的java问题   Java奇怪的NullPointerException在反转链接列表时   java如何创建一个方法来获取hashmap中的值(字符串)的键   java如何在小程序的Eclipse中生成可执行JAR文件?   java如何将数组转换为字符串   java为什么我的日期不能正确设置为未来的30天?   php意外响应代码404凌空java 安卓   java使用JLists和vectors执行未经检查或不安全操作的两种情况   java SessionNotCreatedException:会话未创建:此版本的ChromeDriver仅支持使用Selenium ChromeDriver的Chrome版本77   java Google Maps API教程CurrentPlaceDetailsOnMap无法处理文件   java如何使用requestDispatcher重定向到jsp页面?