Python資料數理

2021-10-04 18:23:36 字數 2809 閱讀 4530

我使用的是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...