第四周第一次
整理数据,完成了将算法组得到的预测产量数据合并整理,存入数据库中。
import pandas as pd
import os
Folder_Path = r'D:\PyCharm\predict_crop' # 要拼接的文件夹及其完整路径,注意不要包含中文
SaveFile_Path = r'D:\PyCharm\data_a' # 拼接后要保存的文件路径
SaveFile_Name = r'predict_crop.csv' # 合并后要保存的文件名
# 修改当前工作目录
os.chdir(Folder_Path)
# 将该文件夹下的所有文件名存入一个列表
file_list = os.listdir()
# 读取第一个CSV文件并包含表头
df = pd.read_csv(Folder_Path + '\\' + file_list[0], encoding="utf_8_sig") # 编码默认UTF-8,若乱码自行更改
# 将读取的第一个CSV文件写入合并后的文件保存
df.to_csv(SaveFile_Path + '\\' + SaveFile_Name, encoding="utf_8_sig", index=False)
# 循环遍历列表中各个CSV文件名,并追加到合并后的文件
for i in range(1, len(file_list)):
df = pd.read_csv(Folder_Path + '\\' + file_list[i])
df.to_csv(SaveFile_Path + '\\' + SaveFile_Name, encoding="utf_8_sig", index=False, header=False, mode='a+')
将算法组得到的预测价格数据合并整理,存入数据库中。
import pandas as pd
import os
Folder_Path = r'D:\PyCharm\pre' # 要拼接的文件夹及其完整路径,注意不要包含中文
SaveFile_Path = r'D:\PyCharm\data_a' # 拼接后要保存的文件路径
SaveFile_Name = r'predict.csv' # 合并后要保存的文件名
# 修改当前工作目录
os.chdir(Folder_Path)
# 将该文件夹下的所有文件名存入一个列表
file_list = os.listdir()
# 读取第一个CSV文件并包含表头
df = pd.read_csv(Folder_Path + '\\' + file_list[0], encoding="utf_8_sig") # 编码默认UTF-8,若乱码自行更改
# 将读取的第一个CSV文件写入合并后的文件保存
df.to_csv(SaveFile_Path + '\\' + SaveFile_Name, encoding="utf_8_sig", index=False)
# 循环遍历列表中各个CSV文件名,并追加到合并后的文件
for i in range(1, len(file_list)):
df = pd.read_csv(Folder_Path + '\\' + file_list[i])
df.to_csv(SaveFile_Path + '\\' + SaveFile_Name, encoding="utf_8_sig", index=False, header=False, mode='a+')
确定了数据表的设计,使用Django新建数据表,建立联系,保证后端所有人可以使用 。
第一次迭代的表沿用之前的设计,只在market上新增了city的设置。
from django.db import models
# Create your models here.
#城市农作物产量表
class Citycrop(models.Model):
"""各城市农作物信息:Citycrop(id,city,year,crop_type,area,weight_all,weight_avg)"""
objects = models.Manager()
city =models.CharField(max_length=255,default='',verbose_name="城市名称",null=True,blank=True)
year =models.IntegerField(default=0,verbose_name="年份",null=True,blank=True)
crop_type =models.CharField(max_length=255,default='',verbose_name="作物种类",null=True,blank=True)
area =models.FloatField(default=0,verbose_name="种植面积",null=True,blank=True)
weight_all =models.FloatField(default=0,verbose_name="总产量",null=True,blank=True)
weight_avg =models.FloatField(default=0,verbose_name="单产",null=True,blank=True)
class Meta:
db_table ='citycrop'
verbose_name = "城市农作物信息"
from django.db import models
# Create your models here.
#所有市场信息
class Market(models.Model):
"""各市场信息:Market(id,market,actul_type,dim_type,price,pyear,month)"""
objects =models.Manager()
market =models.CharField(max_length=255,default='',verbose_name="市场名称", null=True, blank=True)
actual_type =models.CharField(max_length=255,default='',verbose_name="准确类型", null=True, blank=True)
dim_type=models.CharField(max_length=255,default='',verbose_name="模糊类型", null=True, blank=True)
price =models.FloatField(default=0,verbose_name="价格", null=True, blank=True)
year = models.IntegerField( default=0, verbose_name="年份", null=True, blank=True)
month = models.IntegerField( default=0, verbose_name="月份", null=True, blank=True)
day = models.IntegerField(default=0, verbose_name="天", null=True, blank=True)
city = models.CharField(max_length=255, default='', verbose_name="城市", null=True, blank=True)
class Meta:
db_table ='market'
verbose_name = "市场信息"
from django.db import models
# Create your models here.
#城市天气信息
class Cityclimate(models.Model):
"""各城市天气信息:Cityclimate(id,city,year,month,temperature,rain)"""
objects =models.Manager()
city = models.CharField(max_length=255, default='', verbose_name="城市名称", null=True, blank=True)
year = models.IntegerField( default=0, verbose_name="年份", null=True, blank=True)
month =models.IntegerField( default=0, verbose_name="月份", null=True, blank=True)
temperature =models.FloatField(default=0,verbose_name="气温",null=True,blank=True)
rain =models.FloatField(default=0,verbose_name="降水量",null=True,blank=True)
class Meta:
db_table ='cityclimate'
verbose_name = "城市天气信息"
from django.db import models
# Create your models here.
class User(models.Model):
"""
用户信息数据表
User(id,useraccount,password,username,phone,email,create_time,verify_time)
"""
objects = models.Manager()
useraccount =models.CharField(verbose_name='用户账号',unique=True,max_length=200,help_text="用户账号")
password =models.CharField(verbose_name="用户密码",max_length=200,help_text="用户密码")
username =models.CharField(verbose_name="用户名",default='',max_length=200,help_text="用户名")
phone =models.CharField(verbose_name="手机号",default=' ',max_length=11,help_text="手机号")
email =models.CharField(verbose_name="邮箱",default='',max_length=200,help_text="邮箱")
class Meta:
db_table ="User"
verbose_name ="用户信息"
第二次迭代新增的模型根据新设计的表进行编写
from django.db import models
# Create your models here.
class Predictcrop(models.Model):
objects = models.Manager()
crop = models.CharField(max_length=255, default='', verbose_name="作物种类", null=True, blank=True)
city =models.CharField(max_length=255,default='',verbose_name="城市名称",null=True,blank=True)
unit = models.CharField(max_length=255, default='', verbose_name="单位", null=True, blank=True)
weight =models.FloatField(default=0,verbose_name="单产",null=True,blank=True)
first =models.FloatField(default=0,verbose_name="第一天",null=True,blank=True)
class Meta:
db_table ='predictcrop'
verbose_name = "城市农作物预测信息"
from django.db import models
# Create your models here.
#新闻信息
class News(models.Model):
objects =models.Manager()
title = models.CharField(max_length=255, default='', verbose_name="标题", null=True, blank=True)
date = models.DateField( default=0, verbose_name="日期", null=True, blank=True)
source = models.CharField(max_length=255, default='', verbose_name="来源", null=True, blank=True)
viewed =models.IntegerField( default=0, verbose_name="阅读次数", null=True, blank=True)
content = models.TextField(default='', verbose_name="内容", null=True, blank=True)
class Meta:
db_table ='news'
verbose_name = "新闻信息"
from django.db import models
# Create your models here.
#图片信息
class Image(models.Model):
objects =models.Manager()
name = models.CharField(max_length=255, default='', verbose_name="名字", null=True, blank=True)
src = models.CharField( max_length=255, default='', verbose_name="连接", null=True, blank=True)
class Meta:
db_table ='image'
verbose_name = "图片"
rom django.db import models
# Create your models here.
#预测价格信息
class Predict(models.Model):
objects =models.Manager()
actual_type = models.CharField(max_length=255, default='', verbose_name="准确类型", null=True, blank=True)
dim_type = models.CharField(max_length=255, default='', verbose_name="模糊类型", null=True, blank=True)
unit = models.CharField(max_length=255, default='', verbose_name="单位", null=True, blank=True)
market = models.CharField(max_length=255, default='', verbose_name="市场名称", null=True, blank=True)
today = models.FloatField(default=0, verbose_name="当天价格", null=True, blank=True)
one = models.FloatField(default=0, verbose_name="第一天预测", null=True, blank=True)
two = models.FloatField(default=0, verbose_name="第二天预测", null=True, blank=True)
three = models.FloatField(default=0, verbose_name="第三天预测", null=True, blank=True)
four = models.FloatField(default=0, verbose_name="第四天预测", null=True, blank=True)
five = models.FloatField(default=0, verbose_name="第五天预测", null=True, blank=True)
class Meta:
db_table ='predict'
verbose_name = "预测价格信息"
之后在setting里添加这些app
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'market',
'citycrop',
'cityclimate',
'user',
'image',
'predict',
'predictcrop',
'news'
]
然后运行指令新建数据库
最后数据库如图