Iterable API,用于表格数据集,包括CSV、XLS、XML和JSON。
itertable的Python项目详细描述
IterTable是一个Pythonic API,用于迭代表格数据格式,包括CSV、XLS、XML和JSON。在
fromitertableimportload_fileforrowinload_file("example.xls"):print(row.date,row.name)
^{pr2}$Note: Prior to version 2.0, IterTable was wq.io, a submodule of the wq framework. The package has been renamed to avoid confusion with the wq framework website (https://wq.io). Similarly, IterTable's
*IO
classes have been renamed to*Iter
, as the API is not intended to match that of Python'sStringIO
or otherio
classes.
入门
# Recommended: create virtual environment# python3 -m venv venv# . venv/bin/activate python3 -m pip install itertable # GIS support (Fiona & Shapely) python3 -m pip install itertable[gis]# Excel write support python3 -m pip install itertable[write]# (xls/xlsx read support is enabled by default)# Pandas integration python3 -m pip install itertable[pandas]
概述
IterTable提供了一个用于加载、迭代和编写表格数据集的通用API。目标是避免每次需要处理外部数据时都需要记住诸如csv、xlrd或{a11}的唯一用法。相反,IterTable将这些库抽象到一个一致的接口中,该接口作为namedtuples的iterable。只要有可能,数据集的字段名都会自动从源文件中确定,例如Excel电子表格中的列标题。在
fromitertableimportExcelFileIterdata=ExcelFileIter(filename='example.xls')forrowindata:print(row.name,row.date)
IterTable提供了许多类似上述的内置类,包括CsvFileIter
、XmlFileIter
和{load_file()
,它试图自动确定将哪个类用于给定的文件。在
fromitertableimportload_filedata=load_file('example.csv')forrowindata:print(row.name,row.date)
所有包含的*FileIter
类都支持对外部文件的读写,但是对Excel文件的写支持需要itertable[write]
(这将安装xlwt
和xlswriter
)。在
网络客户端
IterTable还提供了上述每个类的网络等价物,以便于从第三方web服务加载数据。在
fromitertableimportJsonNetIterclassWebServiceIter(JsonNetIter):url="http://example.com/api"data=WebServiceIter(params={'type':'all'})forrowindata:print(row.timestamp,row.value)
强大的requests库在内部用于通过HTTP加载数据。在
熊猫分析
当安装Pandas(通过itertable[pandas]
)时,可以使用itertable类上的as_dataframe()
方法来创建DataFrame,从而实现更广泛的分析可能性。在
instance=WebServiceIter(params={'type':'all'})df=instance.as_dataframe()print(df.value.mean())
GIS支持
当安装了Fiona和Shapely时(通过itertable[gis]
),itertable还可以打开并创建shapefile和其他OGR兼容的地理数据格式。在
fromitertableimportShapeIterdata=ShapeIter(filename='sites.shp')forid,siteindata.items():print(id,site.geometry.wkt)
关于IterTable的gis支持的更多信息可以在here上找到。在
命令行界面
IterTable提供了一个简单的CLI来呈现文件或Iter类的内容。这对于检查文件或集成shell自动化工作流非常有用。默认输出是CSV,但是可以通过设置-f json
将其更改为JSON。在
python3 -m itertable example.json # JSON to CSV python3 -m itertable -f json example.csv # CSV to JSON python3 -m itertable example.xlsx "start_row=5" python3 -m itertable http://example.com/example.csv python3 -m itertable itertable.CsvNetIter "url=http://example.com/example.csv"
扩展支持任意格式的extend IterTable很简单。每个提供的类都由一个BaseIter类和mixin类(loaders,parsers,和mappers)组成,它们处理流程的各个步骤。在
标签:
- 项目
推荐PyPI第三方库
支持任意格式的extend IterTable很简单。每个提供的类都由一个BaseIter类和mixin类(loaders,parsers,和mappers)组成,它们处理流程的各个步骤。在
- 项目
标签: