一日一技:从Pandas DataFrame的两个使用小技巧

开发 前端
今天我从网上下载了一批数据。这些数据是Excel格式,我需要把他们转移到MySQL中。这是一个非常简单的需求。

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

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读取时,需要这样写代码:

df = pd.read_excel('文件路径', 'Result')

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

图片图片

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

df.columns = df.columns.str.strip().str.lower().str.replace(' ', '_').str.replace('(', '').str.replace(')', '').str.replace('%', 'percent_unit').str.replace('&', '_and_')

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

图片图片

图片图片

责任编辑:武晓燕 来源: 未闻Code
相关推荐

2024-04-08 00:00:02

setup技巧Pypi

2021-10-15 21:08:31

PandasExcel对象

2020-12-09 05:23:23

Pandas Docker技巧

2020-12-11 06:30:00

工具分组DataFrame

2021-04-27 22:15:02

Selenium浏览器爬虫

2021-04-05 14:47:55

Python多线程事件监控

2022-03-12 20:38:14

网页Python测试

2022-06-28 09:31:44

LinuxmacOS系统

2021-08-13 07:56:13

MongoDBScrapy元素

2021-11-12 05:00:43

装饰器代码功能

2021-04-12 21:19:01

PythonMakefile项目

2021-08-01 15:26:59

协程Asyncio并发数

2021-03-12 21:19:15

Python链式调用

2021-09-13 20:38:47

Python链式调用

2023-10-28 12:14:35

爬虫JavaScriptObject

2021-04-19 23:29:44

MakefilemacOSLinux

2020-12-04 06:39:25

爬虫网页

2021-06-01 21:24:44

多线程代码搜索

2022-03-07 09:14:04

Selenium鼠标元素

2021-07-27 21:32:57

Python 延迟调用
点赞
收藏

51CTO技术栈公众号