前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一日一技:从Pandas DataFrame两个小技巧

一日一技:从Pandas DataFrame两个小技巧

作者头像
青南
发布2023-09-11 16:30:46
1290
发布2023-09-11 16:30:46
举报
文章被收录于专栏:未闻Code未闻Code
今天我从网上下载了一批数据。这些数据是Excel格式,我需要把他们转移到MySQL中。这是一个非常简单的需求。

正常情况下,我们只需要5行代码就能解决问题:

代码语言:javascript
复制
import pandas as pd
from sqlalchemy import create_engine


engine = create_engine('数据库链接URI', echo=False)
df = pd.read_excel('Excel文件路径')
df.to_sql(name='表名', con=engine)

但我发现,这个下载的文件有两个工作簿(Sheet),第一个Sheet叫做Overall,第二个Sheet叫做Result。我们需要的数据在Result这个工作簿中。那么,在使用Pandas读取时,需要这样写代码:

代码语言:javascript
复制
df = pd.read_excel('文件路径', 'Result')

第二个问题,是这个Excel表格的列名,包含了一些不能作为MySQL字段名的值,如下图所示:

其中的空格、括号、百分号、&符号都不适合放到MySQL的字段名中。那么怎么快速批量把这些字符全部替换掉呢?可以使用如下的写法:

代码语言:javascript
复制
df.columns = df.columns.str.strip().str.lower().str.replace(' ', '_').str.replace('(', '').str.replace(')', '').str.replace('%', 'percent_unit').str.replace('&', '_and_')

这样可以批量把所有列名转换为小写字母,并移除特殊符号。效果如下图所示:

END

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-09-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 未闻Code 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档