二维数组转换为DataFrame pandas可直接进行科学计算形式:
import numpy as np import pandas as pd a = [1,2,3] b = [4,5,6] # 首先DataFrame传参有两种方式一种为直接创建数组形式形式 index为列级索引 columns 为行级索引 也可以不指定 不指定则默认从0设置索引 df1=pd.DataFrame(np.random.randn(4,4),index=list('ABCD'),columns=list('ABCD')) #第二种为key value形式 行级索引可以自己设置 key则为列级索引 列级所有再次设置的话会出现Nan没有值的情况所有不能自由设定 但是我们可以通过修改Key来设置 df1=pd.DataFrame({'asd':a,'qwe':b},index=list('ABD'))
计算人数:
from django.shortcuts import render #导包 from django.http import HttpResponse,HttpResponseRedirect #导入类视图 from django.views import View #导入数据库类 from myapp.models import Student #导入科学计算 import numpy as np import pandas as pd #定义类视图 class Index(View): #定义get方法 def get(self,request): #查询所有性别 res_list = [] res = Student.objects.all().values('gender') for item in res: res_list.append(item['gender']) #声明一个数据框架对象 df = pd.DataFrame({'slist':res_list}) #计算统计属性 grouped = df.groupby('slist').size() #取值分组算个数 # print(grouped) print(grouped) print('------------------') print(grouped[0]) print('------------------') print(grouped[1]) return HttpResponse('这里是首页') # 基于Django内写的类视图 大家可以把def提取出来运行
计算平均值:
#导包 from django.http import HttpResponse,HttpResponseRedirect from django.views import View from myapp.models import Student from myapp.mytools import CountGender #导入科学计算库 import numpy as np import pandas as pd #定义试图类 class AvgAge(View): #定义get方法 def get(self,request): res_list = [] age_list = [] #读取数据 res = Student.objects.all().values('gender','age')for item in res: res_list.append(item['gender']) age_list.append(item['age'])#使用科学计算来统计平均年龄 #创建dataframe对象 df = pd.DataFrame({'gender':res_list,'age':age_list}) print(df) print(df.shape) print(df.size) #打印head() 以行为单位从头取 print(df.head(1)) #以行为单位在后取 print(df.tail(3)) #打印所有列 print(df.columns) #打印数据概况 print(df.info()) #分组运算 grouped = df['age'].groupby(df['gender']) # print(grouped.size()) #算平局年龄 avg_age = grouped.mean() # print(avg_age[1]) return HttpResponse('111')