环境准备
我这里使用的是:
- python 3.10
- 第三方包和对应版本:
pandas==1.3.5
PyMySQL==1.0.2
SQLAlchemy==1.4.30
PySimpleGUI==4.56.0
方便项目环境管理,我一般使用pipenv创建管理虚拟环境,如果你也感兴趣,可以看下我之前写的pipenv基本使用教程。
pipenv install # 创建虚拟环境
pipenv shell # 进入虚拟环境
pip install pandas PyMySQL SQLAlchemy PySimpleGUI # 虚拟环境下安装需要的包
exit # 退出虚拟环境,直接关闭cmd也可
2.1 数据读取
查看示例数据发现有2种分隔符,空格和制表符\t,所以我们读取数据的时候也需要指定两种分隔符,另外这个文件没有表头,所以方便数据处理和存储,最好加上表头,和数据库字段名一致。
如下代码:
import pandas as pd
'''
read_csv参数解释:
1、要读取文件路径
2、sep 指定分隔符,读取数据,使用|可以添加多种分隔符
3、header=None 没有表头 默认第一行为表头
4、engine 设置程序引擎
'''
data = pd.read_csv('./resources/ctd2020-09-27.txt', sep=' |\t',header=None, engine='python')
data
不难看出,这样直接读取会有两列nan,这是因为还有两个空格分隔的,没关系,我们删除下整列都为nan的列即可,数据读取无误后,我们在添加上表头,实现代码如下:
# 读取文件
def get_txt_data(filepath):
columns = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N']
data = pd.read_csv(filepath, sep=' |\t',header=None,engine='python')