亚瑟王最好的桌子状容器收藏
roundtable的Python项目详细描述
- 表
将其视为一个namedtuples列表,除了namedtuples的元素 可以编辑。表是用列标题名称的列表初始化的。 追加到表中会添加新行。使用列表(位置)创建行 或dict(列名)。未指定的列单元格默认为None。
其他列表方法(insert,pop,remove,extend,reverse)按预期工作。 sort允许字符串键指示按列排序。搜索方法 (index,count,__contains__)接受行对象、列表或dict。
对表格有用的其他方法:
- take(indexes_or_func)根据传入的索引返回新表 或者,将函数应用于表中的每一行并生成 计算结果为true的行中的新表
- column(colname)返回对列中值的迭代器
- lookuptable
- 向基本表中添加查找函数或列。查找函数类似 到哈希函数,获取一个行对象并返回一个值。如果提供了列, 该列中的值是lookup值。dict记录这些“查找” 值,允许快速查找所有seach方法(index,count,__contains__)。 这些搜索方法接受行对象(通过查找函数运行) 或者lookup值。lookup值不需要唯一。
示例
from datetime import datetime, date, timedelta from roundtable import Table # Create empty table with column headers tbl = Table(['Timestamp', 'Event', 'Root Cause', 'Due Date']) # Add rows to the table tbl.append((datetime(2013,1,2,12,30), 'Error code 129', 'Short on board', date(2013,1,8))) tbl.append({'Event': 'Pairwise testing', 'Due Date': date(2013,1,7)}) # other columns default to None # Build a sorted list of tasks due in the next week task_list = tbl.take(lambda row: row['Due Date'] - date.today() < timedelta(days=7)) task_list.sort(col='Due Date', reverse=True)
表访问方法:
Code | Return Type |
---|---|
^{tt16}$ | Row object |
^{tt17}$ | Row object |
^{tt18}$ | new Table object |
^{tt19}$ | value in cell |
^{tt20}$ | value in cell |
^{tt21}$ | value in cell |
^{tt22}$ | value in cell |
^{tt23}$ | value in cell |
^{tt24}$ | value in cell* |
^{tt25}$ | iterator over values in column |
^{tt26}$ | iterator over values in column |
*作为特殊情况,如果列名是有效的python变量名,并且 以大写字母开头然后将向行中添加一个属性 对象允许访问。以大写字母开头的要求避免了 与行对象的其他属性和函数冲突。
如果模块可用,表对象可以转换为其他类似于表的对象:
- numpy数组:mytable.as_array()
- 熊猫数据帧:mytable.as_dataframe()
注
适用于python 2.6+、3.1+
除了使用as_array()或as_dataframe()方法之外,没有依赖项。