亚瑟王的最佳容器集合
项目描述
- 表格
将其视为命名元组的列表,但命名元组的元素可以编辑。表格使用列头名称的列表初始化。向表格追加会添加新行。行可以使用列表(位置)或字典(列名)创建。未指定的列单元格默认为None。
其他列表方法(insert、pop、remove、extend、reverse)按预期工作。 sort 允许字符串键指示按列排序。搜索方法(index、count、__contains__)接受行对象、列表或字典。
对表格有用的其他方法
take(indexes_or_func) 根据传入的索引返回一个新的表格。或者,将函数应用到表格中的每一行,并从评估为True的行中构建一个新的表格
column(colname) 返回一个列值的迭代器
- 查找表
将查找函数或列添加到基本表格中。查找函数类似于哈希函数,接收行对象并返回一个值。如果提供列,则该列中的值是查找值。字典跟踪这些“查找”值,允许在所有搜索方法(index、count、__contains__)上进行快速查找。这些搜索方法接受行对象(通过查找函数运行)或查找值。这些查找值不需要是唯一的。
示例
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)
表格访问方法
代码 |
返回类型 |
---|---|
mytable[0] |
行对象 |
mytable[-1] |
行对象 |
mytable[0:10:2] |
新的Table对象 |
mytable[0][0] |
单元格中的值 |
mytable[0][-1] |
单元格中的值 |
mytable[0, 0] |
单元格中的值 |
mytable[0]['a 列'] |
单元格中的值 |
mytable[0, 'a 列'] |
单元格中的值 |
mytable[0].Col2 |
单元格中的值* |
mytable.column(1) |
遍历列中的值 |
mytable.column('a 列') |
遍历列中的值 |
* 作为一个特殊情况,如果列名是一个有效的Python变量名并且 以大写字母开头,则会在行对象中添加一个属性,允许访问。要求以大写字母开头是为了避免与其他属性和行对象的函数发生冲突。
如果可用模块,Table对象可以被转换为其他类似表的对象
NumPy数组: mytable.as_array()
Pandas DataFrame: mytable.as_dataframe()
注意
适用于Python 2.6+、3.1+
除了使用 as_array() 或 as_dataframe() 方法外,没有其他依赖。