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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java连接usb到uart设备到安卓设备>3.1   可以强制Php中的web应用程序与Java中的桌面应用程序一起工作吗?   java为什么自定义系统类加载器不工作?   数组在Java中解析具有多个分隔符的字符串   PMD Java 8德米特定律   JavaSpringMVC表单验证不适用于嵌套的复杂类型   让Eclipse Java组织导入以使用Google checkstyle   java Appium:无法创建新会话   java如何在数组中声明新字段   java如何解决“无法初始化类org.apache.cassandra.config.DatabaseDescriptor”?   java AsyncTask创建socket   java向@CreatedBy添加更多信息   如何在ubuntu中运行包含大量jars依赖项的java文件   java如何使用<s:select>标记并在中休眠来填充下拉列表?   java获取错误:找不到符号变量“level”和“next_level_button”   javaweb应用中基于UI的ajax显示代码流   Java长到MySql   java JvisualVM:奇怪的应用程序行为   ubuntu将Java程序的输出结果保存到一个文件中