如果excel檔案內的資料是這樣的:
idname
agebirthday
1kate
112008-2-2
2mike
221997-4-4
3tom
331986-5-5
首先,匯入python包xlrd,以及它的乙個方法 xldate_as_tuple。
import xlrd
from xlrd import xldate_as_tuple # 用於轉換時間格式
from datetime import date,datetime # 也是用於標準化時間
book = xlrd.open_workbook("pxbdata.xlsx") # 開啟excel檔案
sheet = book.sheets()[0] # 獲取檔案中的第乙個表
std = #定義乙個空列表,準備存放後面將要讀到的資料
for i in range(1,sheet.nrows): # 一行一行遍歷資料,sheet.nrows為excel中資料的總行數
# 因為資料被讀取後,資料的格式會發生變化,所以下面要先把資料的格式轉換一下。
temp = sheet.row_values(i) # 獲取到第i行資料
temp[0]=int(temp[0]) # 把這一行的第1個資料轉換為整型,因為讀取之後已經變成了浮點型
temp[2]=int(temp[2]) # 把這一行的第3個資料轉換為整形,理由一樣
# 下面這行比較複雜了。temp[3]在原表裡是時間,讀入之後變成乙個浮點數。
# 那麼先用xldate_as_tuple()的方法,把temp[3]轉換成乙個時間元組,
# 在取這個元組的前3個數字,用date()方法變成時間,
# 再把這個時間通過.strftime(),轉換成標準格式,最後得到的時間格式是str
temp[3]=date(*xldate_as_tuple(temp[3],book.datemode)[:3]).strftime('%y-%m-%d')
std
最後得到的std的結果是:
[(1, 『kate』, 11, 『2008-02-02』),
(2, 『mike』, 22, 『1997-04-04』),
(3, 『tom』, 33, 『1986-05-05』)]
create database test816; # 建立資料庫
use test816; #使用資料庫
#建立資料表
create table students(
-> id int not null auto_increment,
-> name varchar(100) not null,
-> age int not null,
-> birthday date,
-> primary key(id)
-> );
安裝pymysql包
ubuntu中,用命令:pip3 install pymysql
匯入包
import pymysql
建立連線:
conn = pymysql.connect(host = 'localhost', user = 'root', passwd = '2', db = 'test816', charset = 'utf8')
建立游標,給資料庫傳送sql語句指令:
cur = conn.cursor()
準備好資料:
std = [(1, 'kate', 11, '2008-02-02'),
(2, 'mike', 22, '1997-04-04'),
(3, 'tom', 33, '1986-05-05')]
編寫sql指令:
sql = 'insert into students values(%s, %s, %s, %s);'
傳入資料:
cur.executemany(sql, std) # 執行多行插入
最後提交並關閉游標和連線:
上圖測試的時候用了別的資料。
import xlrd
from xlrd import xldate_as_tuple
from datetime import date,datetime
def read_excel(file_path):
'''讀取excel,返回資料列表'''
book = xlrd.open_workbook(file_path)
sheet = book.sheets()[0]
std =
for i in range(1,sheet.nrows):
temp = sheet.row_values(i)
temp[0]=int(temp[0])
temp[2]=int(temp[2])
temp[3]=date(*xldate_as_tuple(temp[3],book.datemode)[:3]).strftime('%y-%m-%d')
return std
import pymysql
def insert_data(std):
'''資料匯入mysql'''
conn = pymysql.connect(host = 'localhost', user = 'root', passwd = '2', db = 'test816', charset = 'utf8')
cur = conn.cursor()
sql = 'insert into students values(%s, %s, %s, %s);'
cur.executemany(sql, std) # 執行多行插入
conn.commit()
cur.close()
conn.close()
Python讀取Excel表並分析
最近閒來無事,就學習了一下python資料分析,剛好學院發了一張學生的基本情況表,沒事做就分析了一下。廢話不多說,就開始寫 首先讀取excel,犯了不少錯,因為這個表有乙個表頭,所以在讀取的時候去除掉表頭。df pd.read excel 計算機學生表.xlsx header 1 這個時候才正式讀取...
python 讀取excel內容並輸出
讀取excel內容並用print輸出。import pandas as pd df pd.read excel 測試.xlsx 這個會直接預設讀取到這個excel的第乙個表單 data df.head 預設讀取前5行的資料 print 獲取到所有的值 n format data 格式化輸出 方法二 ...
Python 讀取Excel資料並分組統計
匯入這個神奇的包 import pandas as pd 參考這個文件 io 是檔案 sheet name 選擇excel 的sheet usecols 選擇當前sheet 的前幾列 names 給每列定義乙個名字 df1 pd.read excel io e haha 測試資料.xlsx shee...