概述
# -*- coding: utf-8 -*-
"""
Created on
2021/12/30 11:25
SQL 数据类型
from sqlalchemy import Integer
from sqlalchemy import DATE
from sqlalchemy import BIGINT
"""
import pandas as pd
from sqlalchemy import create_engine
from sqlalchemy import VARCHAR
## from com.data import testFunction
import time
path = "D:/code_fileAll/test_file/input/老头乐.xlsx"
res_path = "D:/code_fileAll/test_file/output/"
curr_date = time.strftime("%Y%m%d", time.localtime())
print(curr_date)
# 设置mysql 连接引擎
engine = create_engine("mysql+pymysql://root:root@10.1.60.110:3306/datax?charset=utf8mb4",
max_overflow=0,
# 超过连接池大小外最多创建的连接,为0表示超过5个连接后,其他连接请求会阻塞 (默认为10)
pool_size=5,
# 连接池大小(默认为5)
pool_timeout=30,
# 连接线程池中,没有连接时最多等待的时间,不设置无连接时直接报错 (默认为30)
pool_recycle=-1,
# 多久之后对线程池中的线程进行一次连接的回收(重置) (默认为-1)
encoding='utf-8',
echo=False
# 打印SQL语句
)
# 读取EXCEL,设定列名
df = pd.read_excel(path, names=['a', 'b', 'c', 'd'], header=None)
# 取最后几行
print(df[-3:])
# 取前几行
print(df.head(3))
# 写入文件名
res_path_name = f'{res_path}excelTocsv_curr_date.txt'
def rowsRumer(data):
# 统计文件行数
allRows = len(data.index)
# 分组计算按d列值分组,每个值数据量,不包含空值
groupAllNoHeader = data['d'].value_counts()
# 无表头
groupAllHeader = data.groupby("d").size()
# 有表头
# 分组计算按d列值分组,每个值数据量,包含空值在内
groupAllIsNAN = data.fillna("NaN").groupby("d").size()
# 分组统计非空值.reset_index()
# 输出d列值的去重结果
dupl_value = data['d'].drop_duplicates()
# 二维元组,(行_cnt,列_cnt) 统计值, 不屏蔽空值
ranks_cnt = data.shape
# (306, 4)
print("文件行数为n", allRows)
print("分组计算为n", groupAllIsNAN)
print("第四列去重值为n", dupl_value)
print("(行,列) 统计值n", ranks_cnt)
# 计算结果写入本地文件
# pd.DataFrame(allRows).to_csv(res_path_name)
def toMysql (data):
# 修改列名, 全修改
data.columns = ['lable', 'lable2', 'lable3', 'lable4']
# 修改列名定向修改
# data.rename(columns={'a': 'lable'}, inplace=True)
"""
if_exists 三种格式
fail
# 新建表,存在报错
replace # 删表重建
append
# 源表追加
"""
data.to_sql("datax_fdl_4", engine, if_exists='append', index=False
, dtype={"lable": VARCHAR(length=20)
, "lable2": VARCHAR(length=20)
, "lable3": VARCHAR(length=20)
, "lable4": VARCHAR(length=20)
}
)
if __name__ == '__main__':
rowsRumer(df)
toMysql(df)
最后
以上就是迷路毛巾为你收集整理的Python-读取EXCEL数据计算行数,并写入mysql(五)的全部内容,希望文章能够帮你解决Python-读取EXCEL数据计算行数,并写入mysql(五)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复