Process data by pandas

背景

最近做了一些数据处理方面的事,用到了 pandas,记录一下。

  • python 3.6.5
  • pandas 0.25
  • xlrd 1.2.0

默认包引入:

1
import pandas as pd
Read more

Tinkter Demo

背景

最近在做数据的交互与导入导出,刚开始还是按照原先的方式,把所有的参数写在配置文件中。

在运行前需要把配置改掉,这样很容易遗漏。

所以想到了写点简单的界面来配置一些选项,相对来说所见即所得。

Python 里可以写界面的选择很多,也有很强大和专业的库(e.g. PyQt),但是我们这种程度的使用,用原生的 tinkter 就足够了。

Read more

Convert EST/EDT to GMT datetime

背景

最近在导数据的时候,需要把日期型字符串转换成 datetime 类型再导入数据库,其中一些带时区的数据,不能直接使用 strftime 格式化。

数据主要带 EST 和 EDT,需要先转成 GMT 再处理。

Read more

Update CSV Column Values

背景

在一些 csv 文件中会有日期类型,而如果我们想按日期类型导入到数据库中,那么就需要在 insert 前以 date(datetime)的类型传入。

假设简单的 csv 文件(sample.csv)如下:

1
2
3
4
5
6
7
8
9
HolidayDate,Region
2019-01-01,China
2019-01-02,China
2019-04-01,China
2019-05-01,China
2019-07-07,China
2019-10-01,China
2019-01-05,US
2019-06-01,US
Read more

Difference between Python2 and Python3

Python2.x 与 3​​.x 版本区别

Python 的 3​​.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。

为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下相容。

许多针对早期 Python 版本设计的程式都无法在 Python 3.0 上正常执行。

为了照顾现有程式,Python 2.6 作为一个过渡版本,基本使用了 Python 2.x 的语法和库,同时考虑了向 Python 3.0 的迁移,允许使用部分 Python 3.0 的语法与函数。

新的 Python 程式建议使用 Python 3.0 版本的语法。

除非执行环境无法安装 Python 3.0 或者程式本身使用了不支援 Python 3.0 的第三方库。目前不支援 Python 3.0 的第三方库有 Twisted, py2exe, PIL 等。

大多数第三方库都正在努力地相容 Python 3.0 版本。即使无法立即使用 Python 3.0,也建议编写相容 Python 3.0 版本的程式,然后使用 Python 2.6, Python 2.7 来执行。

Python 3.0 的变化主要在以下几个方面:

Read more

Compare Excel

背景

下周可能有一个小任务是由于系统升级,需要保证生成的 excel 是一致的,所以写了一个非常简单的对比脚本。

Read more

Analyze 1.usa.gove from bit.ly

背景

最近在看数据分析相关的知识点,同事那借了本 Python for Data Analysis 在看,接下来会记录一下学习心得和书上的例子,温故知新。

数据分析的门道还是挺多的,Python 的一些库(pandas, numpy, matplotlib)也很好用,不用自己去用标准库辛苦的写了,之前分析 log 如果了解这些知识点的话,效率会很高。

今天介绍书中的例子。

Read more

Run Jobs In Parallel

背景

这周的一个目标是把之前 Benchmark 的脚本改写,使它支持并发的跑 job。

之前的配置是使用 ini,不适合配置现在这种需求,也不想用之前的 xml 来配置,所以今天就简单的研究了下使用 yaml 来配置并运行。

Read more

Python Thread Lock

背景

这两天在继续修改之前写的测试脚本。这两天想要实现并发跑一些任务,之后还要把结果写要 testresult.csv 中。

这样的话就涉及一个问题,因为是并发跑的,所以可以会出现资源争抢的问题,那么就需要对读写加锁控制。

在网上查了下,发现有第三方文件锁库 fcntl 可以使用,不过可惜的是Unix Specific

所以最直接的还是用线程锁来解决这个问题

Read more

Test Result DB Implement

背景

上周提到想要把测试的结果保存到数据库中,下面主要介绍实现的思路。

注意:在定义表名和字段的时候,最好使用小写开头,我下面的例子并不规范。

Read more