命令行中的制表符分隔文件操作工具

tabtools的Python项目详细描述


BuildCoverageDocumentationPyPICode
CircleCICoverallsReadthedocspypiCodacy Badge

安装

pipinstalltabtools

或者从dist目录复制粘贴文件。每一个都是独立的 可执行脚本。

测试

tox

文档

  1. 访问docs文件夹并安装python依赖项:sphinx, Napoleon 插件和readthedocs theme
  2. 生成文档:make html
  3. docs/_build/html文件夹提供本地文件: python -mSimpleHTTPServer

注释

示例:将csv转换为tsv:

cat <(printf"# ") <(cat file.csv | tr ",""\t")

示例

演示文件由汇丰银行每日股票数据组成。

> head tabtools/tests/files/hsbc-stock.tsv

# Date  Open    High    Low Close   Volume
2014-02-21  84.35   84.45   83.9    83.45   17275.0
2014-02-24  83.85   84.4    83.75   84.35   10549.0
2014-02-25  81.65   82.3    81.6    83.9    31186.0
2014-02-26  81.15   81.65   81.0    81.65   18937.0
2014-02-27  81.85   82.4    81.0    81.15   19688.0
2014-02-28  82.25   82.45   81.8    81.9    10806.0
2014-03-05  81.4    81.7    81.15   81.5    6101.0
2014-03-06  81.5    81.75   81.05   81.4    8642.0
2014-03-07  81.3    81.45   81.05   81.45   15464.0

将每日数据转换为每周数据:

> head tabtools/tests/files/hsbc-stock.tsv \
| tgrp -k 'week=strftime("%U", DateEpoch(Date))'\ # Define aggregation key (map emitter)
    -g "Date=FIRST(Date); Open=FIRST(Open); High=MAX(High)"\ # Aggregated values to compute
    -g "Low=MIN(Low); Close=LAST(Close); Volume=SUM(Volume)"# Extra aggregated values
# week  Date    Open    High    Low Close   Volume
072014-02-21  84.35   84.45   83.9    83.45   17275.0
082014-02-24  83.85   84.4    81.0    81.9    91166092014-03-05  81.4    81.75   81.05   81.45   30207

排序原始文件,计算3个不同的ema(指数移动 平均),macd和简单移动平均指标,选择最后10个 线条和美化输出:

> cat tabtools/tests/files/hsbc-stock.tsv \
| tsrt -k Date \ # Sort by column name, not by "field number 1"
| tawk -o "Date; Open; High; Low; Close; Volume"\ # output original fields
        -o "fast_macd = EMA(Close, 12) - EMA(Close, 26); slow_macd = EMA(fast_macd, 9)"\
        -o "macd_histogram = fast_macd - slow_macd; ma50 = AVG(Close, 50)"\
| ttail \
| tpretty

Date       | Open  | High  | Low   | Close | Volume  | fast_macd | slow_macd | macd_histogram | ma50
-----------+-------+-------+-------+-------+---------+-----------+-----------+----------------+---------
2015-07-02 |69.55 |69.75 |69.3  |70.15 |17180.0 | -0.577588 | -0.302581 | -0.275007      |73.7404
2015-07-03 |69.55 |70.25 |69.45 |69.55 |13640.0 | -0.74297  | -0.390658 | -0.352311      |73.7224
2015-07-06 |67.6  |68.85 |67.0  |69.55 |34244.0 | -0.864075 | -0.485342 | -0.378734      |73.6964
2015-07-07 |68.7  |69.0  |68.35 |67.9  |15676.0 | -1.08074  | -0.604421 | -0.476315      |73.6454
2015-07-08 |66.2  |67.6  |66.0  |68.45 |31911.0 | -1.19429  | -0.722395 | -0.471898      |73.5984
2015-07-09 |67.05 |67.5  |65.35 |65.75 |29040.0 | -1.48504  | -0.874924 | -0.610114      |73.4374
2015-07-10 |68.1  |68.45 |67.0  |67.75 |31350.0 | -1.53636  | -1.00721  | -0.529149      |73.2634
2015-07-13 |69.0  |69.05 |67.0  |68.1  |16601.0 | -1.53114  | -1.112    | -0.419145      |73.0974
2015-07-14 |68.25 |69.0  |68.0  |69.05 |15219.0 | -1.43382  | -1.17636  | -0.257459      |72.9294
2015-07-15 |69.0  |69.45 |68.7  |68.55 |9676.0  | -1.38112  | -1.21731  | -0.163806      |72.7614

待办事项:

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

推荐PyPI第三方库


热门话题
Android Java在活动之间传递值   java当实体中存在关系时,我可以只使用实体的id而不是从DB中获取实体吗?   bouncycastle Java运行SSHD服务器错误未找到类定义   java SWT/Swing>Threads n'Hell   java多线程数据库读取   java如何在Eclipse中轻松提交Git   java在哪里可以找到字符串相等比较的一组特定排序规则?   无连接表的java单向单域关系   java扩展三角文件   java spring。杰克逊。序列化。failonemptybeans   java无法加载请求的类:oracle。jdbc。驾驶员OracleDriver   java通过数组进行索引循环并打印出元素?   找不到eclipse错误类中的java提交Hadoop作业   Java:随机设定种子   java片段、异步任务和侦听器   java在分号后使用{}