练习数据处理库

activityio的Python项目详细描述


练习/活动数据已成为一种丰富的资源,但由于文件格式的多样性,应用任何一种复杂的分析都很困难。这个python库的目的是修改这些格式中的一些,并以可预测和可用的形式显示数据。此外,api与awesomePandas library紧密地结合在一起,并且是其扩展。

稳定性

请注意,这个包仍然是一个alpha版本,因此breaking changes很可能是。

安装

PYPI上提供该软件包:

$ pip install activityio

示例用法

activityio的顶层有一个read函数,它根据文件扩展名来分派适当的读取器:

>>> import activityio as aio
>>> data = aio.read('example.srm')

注意用自己活动文件的路径替换'example.srm'

但您也可以直接调用子包:

>>> from activityio import srm
>>> data = srm.read('example.srm')

^上面例子中的{tt5}$是pandas.DataFrame的一个子类,提供了一些简洁的附加功能。最值得注意的是,某些列是“神奇的”,因为它们返回特定的pandas.Series子类。这些子类简化了单元切换,并提供了其他有用的方法:

>>> type(data)
<class 'activityio._types.activitydata.ActivityData'>
>>> data.head(5)
          temp  lap   dist  alt  cad  pwr  speed  hr
time
00:00:00  26.1    1  1.027   67    0    0  1.027  71
00:00:01  26.1    1  2.721   67    0    0  1.694  71
00:00:02  26.2    1  4.415   67    0    0  1.694  71
00:00:03  26.2    1  6.331   67    0    0  1.916  71
00:00:04  26.2    1  8.469   67    0    0  2.138  75
>>> data.normpwr()
249.54104255943844
>>> type(data.speed)
<class 'activityio._types.columns.Speed'>
>>> data.speed.base_unit
'm/s'
>>> data.speed.kph.mean()  # use a different unit
38.485063801685477
>>> data.dist.base_unit
'm'
>>> data.dist.miles[-1]
134.78580023361226
>>> data.alt.base_unit
'm'
>>> data.alt.ascent.sum()
1898.0
```

但是注意如果更改列名,则会失去此功能

>>> data = data.rename(columns={'alt': 'altitude'})
>>> type(data.altitude)
<class 'pandas.core.series.Series'>

API注释

主包由子包组成,这些子包包含文件格式的读取逻辑,文件格式以子包命名。(例如,activityio.fit用于分析ant/garmin fit文件。)

最终逻辑在_reading模块中定义,该模块提供两个函数:gen_recordsread_and_format

  • gen_records是一个生成函数,用于迭代文件中的数据点。数据表的行(如果您愿意)。“记录”是字典对象。
  • read_and_format使用上述生成器返回ActivityData对象。

read_and_format位于别名为read的子包的顶层,因此读取文件看起来像srm.read('path_to_file.srm')gen_records以相同的名称导入。

模块中还提供了一些有用的tools,名称相同。

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

推荐PyPI第三方库


热门话题
缺少java MIMessage附件   java试图从JSON数组向数据库插入数据   铸造java。util。ArrayList无法转换为java。util。矢量   在到达末尾后从头开始读取csv文件(Java、OpenCSV)   Java swing如何在另一个线程中打开框架   java如何为集合正确编写此比较器。排序(arrayList、comparator)?   JavaOOD将配置传递给外部类的最佳方式   java不确定如何使用switch语句从main()调用要运行的方法   java循环菜单以在选择后显示   java将位置对象转换为地址(谷歌地图)   java Hazel cast客户端端口问题   使用JarJar重新打包工具的java   使用Java Netscape目录LDAP API和二进制筛选器值   java如何从Google App Engine下载应用程序源文件   java如何居中javafx场景图“摄影机”   java调用servlet而不提交并停留在同一个JSP页面中   将文本文件加载到HashMap<Integer,List<String>>java中   JavaFX平台。重新加载站点后运行更高版本()