端午安康!
随着写的代码越来越多,我越发觉得需要一个合理的文件来统筹整件事情。
定义一个项目
定义了三个文件夹:分别用来存放代码,输出数据和读取数据。我将数据分为输出数据和读取数据,其中读取数据指的是:如果咱们得到一份数据,并且它是不规范的,于是咱们用代码将它标准成规范的,并放入文件夹。
这篇文章要做的就是写一个基本通用的代码用于读取数据。(写到最后发现通用不起来,可能还会遇到未知的情况)
前几天得到一些交易所的数据,拿到的时候是XXX.tar.gz压缩文件。这个文件在windows下也是可以用zip解压的(解压2次:一次自动,一次手动)。
查看数据
大概有20个G的数据,包含了近10家交易所的所有交易对。读取数据之前,咱们首先需要知道它的基本概况,对吧?
代码实操
导入os模块
定义路径
遍历所有数据文件
运行结果
但是咱们的数据是1个文件夹对于多个dat,上面输出的文件名称我们并不能一一对应文件夹和文件形成有效路径。
这里的思路:通过os.walk遍历第一层级目录,形成一个绝对路径。
遍历第一层级
运行结果
创建空列表
再遍历第二层级
运行结果
现在满足条件的文件以及它的路径已经形成,接着咱们就逐个读取数据。
读取数据
使用json读取数据
添加交易对
添加交易所
重命名df列
修改为北京时间
运行结果
创建空df
添加符合要求的df
重置列名
导出数据
在运行程序的时候,发现有数据是空的,所以咱们需要写一个放错判断。
运行结果
查看交易所数据量
zb交易所数据量是gate的2倍,肯定是不正常的,看一下原因。
分别取出两个交易所的第一行数据的时间,计算一下时间差:2个多月。
去gate上核对了一下,的确是EOS上线时间问题(3月9号才上线)。
自己动手写写吧,测试数据网盘链接:
https://pan.baidu.com/s/1GZXWTG-5XeIoU_RGvlnvgg
密码:zd1m
领取专属 10元无门槛券
私享最新 技术干货