Python - 读Excel数据落库 - 手把手教学

本文手把手教你使用Python将Excel数据导入数据库。首先安装Python环境和相关库,接着通过openpyxl读取Excel,再利用pymysql连接数据库并执行SQL操作,实现数据入库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:

  • 有一批数据业务只能线excel的方式给
  • excel与数据表结构不一致

当然可以直接通过navicat导入excel数据,but、、python也得用起来呀
let us go ~

准备:

  • 编辑器 - 写代码得有开发工具啊,pyCharm也行、本文idea 2020.3
  • python 解释器 - 直接通过idea插件方式安装即可
  • 导包 - 需要啥导啥

步骤:

  • 1 idea 安装python 插件

File -> Settings -> plugins -> Marketplace
输入 python -> install 安装完重启idea
在这里插入图片描述

  • 2、创建python项目

File -> New -> Project…
此时发现左侧已经有Python选项了,
Project SDK默认我们刚安装的Python最新版本,自己手动安装在本地的可以通过Add Python SDK 选择
然后一路下一步就可以了
这里是引用

  • 3、 环境验证

新建个文件(后缀为.py)
随便写点啥,打印一下
打印成功、环境已经准备完毕
这里是引用

  • 4、 建包、搭架子

我们的任务大致分为两步
1、读excel
2、写DB

读 Excel:

  • 新建一个module (概念同idea一致)
  • 安装openpyxl - 我们通过openpyxl处理excel

打开终端
输入 pip install openpyxl,回撤
会有下载进度条提示,(我是先卸载了,重新安装的)
这里是引用

  • 读excel demo
    在这里插入图片描述
from openpyxl import load_workbook

# 读当前目录下excel
excel = load_workbook('./panda.xlsx')

# ['Sheet1', 'Sheet2', 'Sheet3']
tables = excel.sheetnames

# 表头
table = excel[tables[0]]

# 列数
columns = table.max_column

# 行数
rows = table.max_row

# 逐行读excel
for i in range(1, rows+1):
    # 行数组
    row = []

    # 第一列
    column1 = table.cell(row=i, column=1).value
    row.append
<think>好的,用户之前问过关于AD统计量异常高的问题,我给出了详细的排查步骤和代码示例。现在用户的新问题是不知道如何操作这些代码,需要更基础的指导。首先,我需要判断用户的背景,可能他们不熟悉Python或者编程,需要更详细的步骤说明。 用户可能的需求是实际应用这些代码来解决他们的数据问题,但由于缺乏编程经验,不知道如何开始。我需要分解步骤,确保他们能一步步操作,可能需要解释如何安装必要的软件,如何运行代码,以及每个步骤的具体操作。 接下来,我需要考虑用户的操作系统,但可能他们用的是Windows,因为大多数新手用户可能使用这个系统。所以我会推荐安装Anaconda,因为它集成了Python和Jupyter Notebook,对新手友好。 然后,我需要详细说明如何安装Anaconda,如何启动Jupyter,创建新笔记本,并逐步输入代码。同时,要提醒他们替换文件路径,检查数据列是否正确。用户可能对代码中的某些部分不理解,比如pandas的用法,所以需要简单解释每个代码块的作用,例如数据、检查数据类型等。 在数据可视化部分,用户可能需要安装matplotlib,所以需要给出安装命令。同时,解释直方图和箱线图的作用,帮助他们理解输出结果。处理异常值时,要给出具体的例子,比如如何设置上下限,并强调需要根据实际情况调整。 最后,要提供备选方案,如果用户无法编程,推荐使用Excel或在线工具,这样他们可以选择最适合自己的方法。同时,给出联系方式以便进一步帮助,增加用户的信任感。 需要确保整个回答结构清晰,步骤详细,避免使用专业术语,用简单易懂的语言。每个步骤都配以具体的操作示例和解释,确保用户能跟上。同时,检查是否有遗漏的步骤,比如安装、保存文件等,确保用户操作顺畅。</think>不用慌!即使没有编程基础,也可以按照以下 **分步可视化操作指南** 完成诊断。我将提供 **3种解决方案** ,你可以选择最适合自己的方式: --- ### **方案一:零代码Excel快速排查法** #### 步骤1:检查数据- 打开Excel文件 - 确认你分析的 **数据列没有混入标题行**(例如:确保数据从A2单元格开始) - 删除其他无关列(只保留需要检验的那一列数据) #### 步骤2:识别极端值 - 在空白单元格输入: ``` =MAX(A:A) # 获取最大值(假设数据在A列) =MIN(A:A) # 获取最小值 =AVERAGE(A:A) # 计算均值 =STDEV.P(A:A) # 计算标准差 ``` - **危险信号**:如果最大值比均值大100倍以上,或标准差是均值的10倍以上 #### 步骤3:绘制图表 - 选中数据列 → 点击顶部菜单【插入】→ 选择【直方图】 - 再次选中数据列 → 点击【插入】→ 选择【箱线图】 - **异常示例**: - 直方图呈现"一根孤柱"(所有数据挤在一起) - 箱线图出现大量远离箱体的点 --- ### **方案二:免费在线工具处理** #### 推荐工具: 1. **AIdaX数据诊所**(无需注册): [https://www.aidaxlab.com/tools/normality-test](https://www.aidaxlab.com/tools/normality-test) - 上传CSV/Excel文件 → 自动生成诊断报告 - 提供异常值高亮显示功能 2. **Wessa正态性检验**:[https://www.wessa.net/rwasp_Anderson-Darling.wasp](https://www.wessa.net/rwassa) - 直接粘贴数据 → 自动计算AD统计量 - 生成概率图辅助判断 --- ### **方案三:手把手Python实操教学** #### 准备工作(5分钟): 1. 下载安装 **Anaconda**(含Jupyter Notebook): [https://www.anaconda.com/download](https://www.anaconda.com/download) 2. 启动Jupyter Notebook → 新建Python3笔记本 #### 诊断代码模板(复制粘贴即可): ```python # 第1步:导入(直接运行) import pandas as pd import matplotlib.pyplot as plt # 第2步:数据(修改文件路径) data = pd.read_excel('你的文件路径.xlsx').iloc[:,0] # 示例:Excel第一列 # 第3步:基础检查 print("👉数据类型:", data.dtype) # 应该显示float64或int64 print("👉前5个值:", data.head()) # 检查是否有非数字内容 # 第4步:统计指标 print("\n📊 最大值:", data.max()) print("📊 最小值:", data.min()) print("📊 均值:", data.mean()) print("📊 标准差:", data.std()) # 第5步:绘制图表 plt.figure(figsize=(12,4)) plt.subplot(1,2,1) data.plot.hist(bins=50, title="直方图") # 左边显示直方图 plt.subplot(1,2,2) plt.boxplot(data, vert=False) # 右边显示箱线图 plt.title("箱线图") plt.show() # 第6步(可选):保存清洗后的数据 clean_data = data[(data > 下限值) & (data < 上限值)] # 根据实际情况设置上下限 clean_data.to_excel('清洗后数据.xlsx', index=False) ``` #### 操作提示: - 将代码中的 `'你的文件路径.xlsx'` 替换为实际路径(例如:`'C:/Users/Name/Desktop/data.xlsx'`) - 按 `Shift+Enter` 逐段运行代码 - 如果出现红色报错,检查文件路径是否正确、Excel是否已关闭 --- ### **关键参数设置参考表** | 操作步骤 | 参数示例 | 注意事项 | |---------|---------|---------| | 数据 | `iloc[:,0]` | 表示取第一列,如果是第二列则改为`iloc[:,1]` | | 直方图分箱 | `bins=50` | 数据量少时可降低到10-20 | | 异常值过滤 | `下限值=均值-3*标准差`<br>`上限值=均值+3*标准差` | 适用于近似正态分布的数据 | --- ### **如果仍然遇到困难** 请提供以下信息,我可以给出更具体的建议: 1. 数据来源(如:实验测量数据 / 金融股价数据) 2. 样本量大小(如:100行还是10万行) 3. 数据截图(需遮盖敏感信息) 可以发送邮件至:[support@aidaxlab.com](mailto:support@aidaxlab.com) ,标注【AD统计量异常咨询】
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值