1. 程式人生 > >建立一個基於pandas查詢數據框架類的對象

建立一個基於pandas查詢數據框架類的對象

read false name values xls 平均值 module copy student

import os import sys

#將腳本所在的工程添加到 1、環境變量 # sys.path.append(‘c:/Users/Administrator/www/mymac‘) #絕對路徑 sys.path.append(‘../../mymac‘) #相對路徑 #將項目路徑添加到 2、系統環繞搜尋的路徑 os.environ[‘DJANGO_SETTINGS_MODULE‘] = "mymac.settings"

#導入django模塊 import django

#導入科學計算庫 import pandas as pd import numpy as np

#導入第三方庫sqlalchemy的數據庫引擎 from sqlalchemy import create_engine

#加載項目配置 django.setup()

#加載django的數據表類,類名的爆紅??問題轉給了df對象,忽略 from myapp.models import Student



if __name__ == "__main__":

obj = Student.objects.all() print("測試繞過route-view導入數據庫,利用腳本py連接django的ORM\n{}".format(obj))

#建立數據庫引擎 engine = create_engine(‘mysql+pymysql://root:123456@localhost:3306/mymac‘) sql = ‘select id,name,age,gender from student‘

#建立一個基於pandas查詢數據框架類的對象 df = pd.read_sql_query(sql,engine) print("df = pd.read_sql_query(sql,engine) #建立一個基於pandas查詢數據框架類的對象\n{}".format(df))

#select * from student order by age asc | desc df = df.sort_values([‘age‘,‘gender‘],ascending=False) print("df = df.sort_values([‘age‘,‘gender‘],ascending=False) #指定多字段排序,遵循最左原則,註意:這是矩陣數組操作,不是在數據庫操作,需要重新賦值\n{}".format(df))

_df = df.sort_values([‘age‘]).head(1) print("_df = df.sort_values([‘age‘]).head(1) #取年齡最小的學生,從頭部取第一個\n{}".format(_df))

print(‘#所有字段的平均值\n{}‘.format(df.mean())) print(‘#矩陣 按列 求平均值\n{}‘.format(df.mean(0))) print(‘#矩陣 按行 求平均值\n{}‘.format(df.mean(1)))

avg_age = df.loc[df[‘gender‘] == 0].age.mean() print("avg_age = df.loc[df[‘gender‘] == 0].age.mean() #使用 loc[] 方法指定字段---查整個班的女生平均年齡\n{}".format(avg_age))

view = df.loc[(df[‘age‘] < avg_age) & (df[‘gender‘] == 0)] print("view = df.loc[(df[‘age‘] < avg_age) & (df[‘gender‘] == 0)] #查小於平均年齡的女生\n{}".format(view))

data = df.loc[ df[‘gender‘] == 1, [‘id‘,‘name‘]] print("data = df.loc[ df[‘gender‘] == 1, [‘id‘,‘name‘]] #查指定字段的數據\n{}".format(data))



""" pandas的矩陣轉成excel文件,需要安裝一個Exel插件 pip install openpyxl 基於清華學校的源安裝 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple openpyxl 將dataframe寫入數據表 表名,數據引擎,索引是否入庫 """ df.to_sql(‘student_copy‘,engine,index=False) #導出excel文件 df.to_excel(‘student.xlsx‘)

建立一個基於pandas查詢數據框架類的對象