一日一技:從Pandas DataFrame的兩個(gè)使用小技巧
正常情況下,我們只需要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),這個(gè)下載的文件有兩個(gè)工作簿(Sheet),第一個(gè)Sheet叫做Overall,第二個(gè)Sheet叫做Result。我們需要的數(shù)據(jù)在Result這個(gè)工作簿中。那么,在使用Pandas讀取時(shí),需要這樣寫代碼:
df = pd.read_excel('文件路徑', 'Result')
第二個(gè)問題,是這個(gè)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)換為小寫字母,并移除特殊符號。效果如下圖所示:
圖片
圖片