一日一技:從Pandas DataFrame的兩個使用小技巧
作者:kingname
今天我從網(wǎng)上下載了一批數(shù)據(jù)。這些數(shù)據(jù)是Excel格式,我需要把他們轉(zhuǎn)移到MySQL中。這是一個非常簡單的需求。
正常情況下,我們只需要5行代碼就能解決問題:
import pandas as pd
from sqlalchemy import create_engine
engine = create_engine('數(shù)據(jù)庫鏈接URI', echo=False)
df = pd.read_excel('Excel文件路徑')
df.to_sql(name='表名', con=engine)
但我發(fā)現(xiàn),這個下載的文件有兩個工作簿(Sheet),第一個Sheet叫做Overall,第二個Sheet叫做Result。我們需要的數(shù)據(jù)在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_')
這樣可以批量把所有列名轉(zhuǎn)換為小寫字母,并移除特殊符號。效果如下圖所示:
圖片
圖片
責(zé)任編輯:武曉燕
來源:
未聞Code