您的位置:首页 > 财经 > 金融 > 汕头市网络推广报价_申请免费个人网页_如何做运营推广_东莞网站建设公司

汕头市网络推广报价_申请免费个人网页_如何做运营推广_东莞网站建设公司

2024/12/23 9:07:46 来源:https://blog.csdn.net/qq_43001132/article/details/142556643  浏览:    关键词:汕头市网络推广报价_申请免费个人网页_如何做运营推广_东莞网站建设公司
汕头市网络推广报价_申请免费个人网页_如何做运营推广_东莞网站建设公司

Python与SQL Server数据库结合导出Excel并做部分修改

需求:在数据库中提取需要的字段内容;并根据字段内容来提取与拆分数据做为新的列最后导出到Excel文件

# -*- coding: utf-8 -*-
import pandas as pd
import re
import pymssql
import timestart_time = time.time()
print("程序开始时间:", time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(start_time)))
# 建立数据库连接
conn = pymssql.connect(server='192.168.2.1', user='sa', password='123', database='YD')# 执行 SQL 查询
query = f'''
SELECT 类型,流水号,账号,时间,通过时间,客服号,地市,区县,grid,测试结果
FROM TS_DATA WHERE CAST(最后质检通过时间 AS date) = '2024-09-01';
'''  # 修改为你的实际表名
df = pd.read_sql(query, conn)# 确保 '测试结果' 列中是字符串
df['测试结果'] = df['测试结果'].astype(str)# 定义提取信息的函数
def extract_info(text):# 提取光功率,包括可能的中文错误信息light_power = re.search(r'【功率】:([^【\n]*)', text)light_power = light_power.group(1).strip() if light_power else None# 提取速率,包括 'M' 字符rate = re.search(r'【速率】:([\d.]+M)', text)rate = rate.group(1) if rate else None# 提取 radiusradius = re.search(r'【ra】:([^,\s【]+)', text)radius = radius.group(1).strip() if radius else None# 提取上线时间online_time = re.search(r'上线:([\d/:\s]+)', text)online_time = online_time.group(1) if online_time else Nonereturn pd.Series([light_power, rate, radius, online_time],index=['功率', '速率', 'ra', '上线'])# 提取数据并添加到新的列中
df[['功率', '速率', 'ra', '上线']] = df['测试结果'].apply(extract_info)df.fillna('空白', inplace=True)
df['测试结果'] = df['测试结果'].replace('None', '', regex=False)
# 添加一个新列来标记是否有任何字段为"空白"
df['是否包含空白'] = (df['功率'] == "空白") | (df['速率'] == "空白") | (df['ra'] == "空白")
df['是否包含空白'] = df['是否包含空白'].map({True: '是', False: '否'})
# 保存到新的 Excel 文件
output_file = '投诉9月份数据-0901.xlsx'
df.to_excel(output_file, index=False, engine='openpyxl')print(f"数据已处理并保存到 {output_file}")# 关闭数据库连接
conn.close()
end_time = time.time()
print("程序结束时间:", time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(end_time)))
run_time = end_time - start_time
print("程序运行耗时:%0.2f" % run_time, "s")

最终效果图

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com