python中的datio库。
datio的Python项目详细描述
datio是模拟工作中有用的数据处理库。
主类series被设计成按行或列访问数据。
系列在需要处理每个 分析给定列的最后x个项时的数据行。
例如,在股票模拟中,您将遍历 一个股票的价格,但是对于每个价格周期,计算20个周期的移动 收盘价的平均值。这个系列的课程 处理列时按行读取很容易。
概述
数据的主要功能:
- series():
- 跨行或列访问数据。按行或列追加。 更新系列。
- lol2dol():
- 将列表列表转换为列表指令。基本上从 按行访问数据以按列访问数据。
- csv2rol():
- 将csv文件中的数据加载到列表列表中。
- 格式值():
- 将值列表从一种类型转换为另一种类型,如float, int、string或datatime.strTime。
许可证
在麻省理工学院的许可下提供。
用法
- 导入库:
>>> import datio
- 定义一些要使用的数据:
>>> prices_lol = [] >>> prices_lol.append(['1997-01-01', 'goog', '32.00']) >>> prices_lol.append(['1997-01-02', 'goog', '33.00']) >>> prices_lol.append(['1997-01-03', 'goog', '34.00'])
- 将数据加载到序列中:
>>> series = datio.Series('dates', 'symbols', 'closes') >>> series.from_values(prices_lol)
- 访问序列中的所有日期:
>>> series.dates ['1997-01-01', '1997-01-02', '1997-01-03']
- 仅访问序列的第二行:
>>> series[1] ('1997-01-02', 'goog', '33.00')
- 访问“关闭”列序列的第一行:
>>> series.closes[0] '32.00'
- 将关闭列格式化为浮动:
>>> series.format('closes', float) [32.0, 33.0, 34.0]
- 我们也希望包括开盘价。因此,追加打开序列:
>>> series.appendcol('opens', [31.00, 33.0, 35]) >>> series.opens [31.0, 33.0, 35]
- 稍后我们可能需要一个列来存储移动平均值:
>>> series.initcol('sma_closes') >>> series.sma_closes [None, None, None]
- 现在,我们想为1997-01-04价格周期添加一行:
>>> series.append(['1997-01-04', 'goog', 38, 37]) >>> series[3] ('1997-01-04', 'goog', 38, 37, None)
- 如您所见,sma_closes列为none,因为我们没有将其包含在附加值中。所以,我们把它改为0.0:
>>> series.sma_closes[3] = 0.0
- 将日期列格式化为datetime:
>>> series.format('dates', datetime.strptime, '%Y-%m-%d') >>> series.dates[0].__str__() '1997-01-01 00:00:00'
- 最后,让我们将该系列从收盘价的高位到低位进行排序:
>>> series.sort('closes', order='d') >>> series.closes [38, 34.0, 33.0, 32.0]
路线图
- 不确定是否要将列附加到为以后所有值追加的最后一个格式调用?
- 真的不喜欢列可以在系列之外更新的事实。但是,不确定将它们转换成元组是否是一件好事,因为需要返回列表以在序列中更新,这会带来开销。
- 考虑让调用中的行是namedtuples而不是tuples。这将允许命名属性访问,我相信开销更低?但是,在这一点上,并不需要这个特性。
联系人
- 有关更多信息,请发送电子邮件:
- mike@taylortree.com