首页 > 其他 > 详细

建立一个基于pandas查询数据框架类的对象

时间:2019-03-06 13:33:05      阅读:155      评论:0      收藏:0      [点我收藏+]
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查询数据框架类的对象

原文:https://www.cnblogs.com/justblue/p/10482389.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!