我使用的是mysql,先看一下資料庫資訊
學生資訊表,表名為test11_12
班級專業表,表名test11_12_
使用的python庫有pandas,numpy,首先先看一下要求:
使用的python庫有pandas,numpy,首先先看一下要求:
1、使用python讀取資料,新增專業資訊。
2、對為空的資料填充為60分。
3、處理異常資料,小於0的修改為0,大於100的修改為100。
4、計算總成績。
5、最後匯出csv,xls檔案。
以下是處理後的資料展示
進入正題,上**
import pymysql
import pandas as pd
import numpy as np
db=pymysql.connect("localhost","root","123456","kettle")
# 輸出字典,python小白乙個,只能先這樣寫,不然到下面游標時資料顯示的不對
# 加『pymysql.cursors.dictcursor』是為了輸出字典
cur_information=db.cursor(pymysql.cursors.dictcursor)
cur_grade=db.cursor(pymysql.cursors.dictcursor)
# 在此我使用的是分開查詢,最後合併,因為numpy處理資料時面對字串是會報錯,不支援
# 輸出學生資訊
sql01='''select
test11_12.`學號`,
test11_12.`姓名`,
test11_12.`性別`,
test11_12_.`班級`,
test11_12_.`專業`
from
test11_12 inner join test11_12_ on test11_12.班級=test11_12_.班級'''
# 輸出學生成績資訊
sql02='''select
test11_12.`高數`,
test11_12.`英語`,
test11_12.`大資料技術`
from
test11_12 '''
# 這裡返回的是int型別的整數,多少行資料
# 以下需要把字典轉化為 dataframe,以便最後資料整合
information01=cur_information.execute(sql01)
information02=pd.dataframe(cur_information.fetchall())
grade01=cur_grade.execute(sql02)
grade02=pd.dataframe(cur_grade.fetchall())
db.close()
# 處理空值,填充為60
grade_null=grade02.fillna(60)
# 處理不規則資料,資料範圍為0~100,超出100的修改為100,低於0的修改為0
grade_error=np.array(grade_null)
grade_error[grade_error<0]=0
grade_error[grade_error>100]=100
grade03=pd.dataframe(grade_error)
# print(grade03)
# 求和,處理後的各科成績求和輸出,新增一列的頭為『sum』
# 檢視一下資料是否處理正常
# print(information02)
# print(grade03)
# dataframe()資料合併
meger_data=pd.merge(information02,grade03,left_index=true,right_index=true)
# print(meger_data.values.tolist())
# 輸出csv
colum=['學號','姓名','性別','班級','專業','高數','英語','大資料技術','成績總和']
# dataframe需要轉化為list,不新增index=false輸出的資料第一列會有索引,不好看,去掉
out_csv=pd.dataframe(columns=colum,data=meger_data.values.tolist())
out_csv.to_csv('d:/desktop/program/python/exercise/test/test11_12/data/information.csv',index=false)
# 輸出excel,別的方法還不會,這裡就用csv檔案轉為excel,
out_excel=pd.read_csv('d:/desktop/program/python/exercise/test/test11_12/data/information.csv',sep=',')
out_excel.to_excel('d:/desktop/program/python/exercise/test/test11_12/data/information.xls',index=false)
Python引數理解
def power x x 必選引數 return x 2def power x,n 2 n 預設引數 return x n即傳入的引數個數是可變的 def calc numbers numbers 可變引數 print numbers sum 0 for n in numbers sum sum ...
Python中函式引數理解
python中函式定義主要包含4類引數 1 必選引數 2 預設引數 3 可變引數 4 關鍵字引數 def power x x 必選引數 return x 2def power x,n 2 n 預設引數 return x n即傳入的引數個數是可變的。def calc numbers numbers 可...
Python裡的變長引數理解
元組 tuple 變長引數 適用於未知引數的數量不固定,但在函式中使用這些引數無需知道這些引數的名字的場合。在函式定義中,元組變長引數使用 標記 def show message meassage,tuplename for name in tuplename print meassage,name...