使用Python读取xlsx表格数据并导入到MySQL数据库中时遇到的问题24

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 【7月更文挑战第24天】使用Python读取xlsx表格数据并导入到MySQL数据库中

一、读取的数据中存在nan的值,如何转换为空字符串

1、第一种方式是判断如果为nan,修改nan的值

• import numpy as np
• nan = float('nan')
• print(np.isnan(nan))

2、第二种方法直接将nan替换为空字符串

• import pandas as pd
• import numpy as np
• data = pd.DataFrame({})
• data.replace(np.nan, '')

 

二、如何将pandas读取的excel数据转为字典对象

使用pandas读取数据后,迭代每一行,将每一行转换为字典后,组装成列表数据,就将所有数据转为字典了,可以通过标头的字段名获取对应的值。

• df = pd.read_excel(excelfile)
•  df = df.replace(np.nan,'')
• data = []
• for index,row in df.iterrows():
•     dictrow = row.to_dict()
•     data.append(dictrow)

三、如何读取文件夹下的所有文件名,遍历excel文件内容

通过 os库,的listdir方法,可以方便的获取对应目录的所有文件名列表,然后循环读取列表内容文件名就可以。

• import os
• exceldirr = './/file/yxexcel/'
• excelist = os.listdir(exceldirr)
• for filename in excelist:
•   excelfile = os.path.join(exceldirr,filename)

完整的读取exxcel表格代码。

• import numpy as np
• import pandas as pd
• import os
• from mysql_class import mysql
• msq = mysql()
• # 读取xlsx格式的数据
• def readexcel():
•     exceldirr = './/file/yxexcel/'
•     excelist = os.listdir(exceldirr)
• for filename in excelist:
•         excelfile = os.path.join(exceldirr,filename)
• print(f'读取文件{excelfile}')
• # excelfile = './file/a.xlsx'
•         df = pd.read_excel(excelfile)
•         df = df.replace(np.nan,'')
•         data = []
• for index,row in df.iterrows():
•             dictrow = row.to_dict()
•             data.append(dictrow)
• if data:
•             datapass(data)


怎么样是不是很简单。

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
10天前
|
SQL 数据库 开发者
Python中使用Flask-SQLAlchemy对数据库的增删改查简明示例
这样我们就对Flask-SQLAlchemy进行了一次简明扼要的旅程,阐述了如何定义模型,如何创建表,以及如何进行基本的数据库操作。希望你在阅读后能对Flask-SQLAlchemy有更深入的理解,这将为你在Python世界中从事数据库相关工作提供极大的便利。
60 20
|
1月前
|
关系型数据库 MySQL Linux
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
111 28
|
2月前
|
存储 SQL 关系型数据库
【YashanDB知识库】MySQL迁移至崖山char类型数据自动补空格问题
**简介**:在MySQL迁移到崖山环境时,若字段类型为char(2),而应用存储的数据仅为'0'或'1',查询时崖山会自动补空格。原因是mysql的sql_mode可能启用了PAD_CHAR_TO_FULL_LENGTH模式,导致保留CHAR类型尾随空格。解决方法是与应用确认数据需求,可将崖山环境中的char类型改为varchar类型以规避补空格问题,适用于所有版本。
|
2月前
|
数据库 Python
【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断
【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断
|
2月前
|
SQL 关系型数据库 MySQL
【YashanDB知识库】字符集latin1的MySQL中文数据如何迁移到YashanDB
本文探讨了在使用YMP 23.2.1.3迁移MySQL Server字符集为latin1的中文数据至YashanDB时出现乱码的问题。问题根源在于MySQL latin1字符集存放的是实际utf8编码的数据,而YMP尚未支持此类场景。文章提供了两种解决方法:一是通过DBeaver直接迁移表数据;二是将MySQL表数据转换为Insert语句后手动插入YashanDB。同时指出,这两种方法适合单张表迁移,多表迁移可能存在兼容性问题,建议对问题表单独处理。
【YashanDB知识库】字符集latin1的MySQL中文数据如何迁移到YashanDB
|
2月前
|
缓存 NoSQL 关系型数据库
Redis和Mysql如何保证数据⼀致?
1. 先更新Mysql,再更新Redis,如果更新Redis失败,可能仍然不⼀致 2. 先删除Redis缓存数据,再更新Mysql,再次查询的时候在将数据添加到缓存中 这种⽅案能解决1 ⽅案的问题,但是在⾼并发下性能较低,⽽且仍然会出现数据不⼀致的问题,⽐如线程1删除了 Redis缓存数据,正在更新Mysql,此时另外⼀个查询再查询,那么就会把Mysql中⽼数据⼜查到 Redis中 1. 使用MQ异步同步, 保证数据的最终一致性 我们项目中会根据业务情况 , 使用不同的方案来解决Redis和Mysql的一致性问题 : 1. 对于一些一致性要求不高的场景 , 不做处理例如 : 用户行为数据 ,
|
3月前
|
SQL 关系型数据库 MySQL
基于SQL Server / MySQL进行百万条数据过滤优化方案
对百万级别数据进行高效过滤查询,需要综合使用索引、查询优化、表分区、统计信息和视图等技术手段。通过合理的数据库设计和查询优化,可以显著提升查询性能,确保系统的高效稳定运行。
116 9
|
2月前
|
SQL 关系型数据库 数据库连接
|
SQL 关系型数据库 MySQL
Python怎么操作Mysql数据库
Python怎么操作Mysql数据库
122 0
|
SQL 关系型数据库 MySQL
python如何操作mysql数据库
python如何操作mysql数据库
84 0