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


faro的Python项目详细描述

概述

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

用法

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

from faro import Database

db = 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)
iata name city state
0 00M Thigpen Bay Springs MS
1 00R Livingston Municipal Livingston TX
2 00V Meadow Lake Colorado Springs CO
3 01G Perry-Warsaw Perry NY
4 01J Hilliard Airpark Hilliard FL

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

table = db.query(sql)
type(table)
>>> faro.table.Table

df = table.to_dataframe()
type(df)
>>> pandas.core.frame.DataFrame

matrix = table.to_numpy()
type(matrix)
>>> numpy.ndarray

推荐PyPI第三方库


热门话题
aloft 云物 viewset as3 disque ale websockify contractor freemind 液滴 zgeo perspective amap wegene radiohead varint program basemap 监控器 hft alicloud 皮条客 makerlabs ohm swimlane rarfile contailapi xra goggles breed android 圆顶 duco 区域化 安定剂 hot wonder resolved 微网 twd97 dockit libexec briefcase qt5 openimis 版本控制 greylist pyhive pyro4 snip