导入前置lib


In [12]:
import pandas as pd
from pandas import DataFrame
import numpy as np
import os

import mysql.connector
from sqlalchemy import create_engine
from sqlalchemy.types import VARCHAR,Integer

# 阿里云数据库
DB_ALI   = create_engine('mysql+mysqlconnector://zhoub:zhoub-ses@www.easygaokao.com:3306/scores_v2', echo=False)

# 本地数据库
DB_LOCAL = create_engine('mysql+mysqlconnector://zhoub:zhoub-ses@192.168.2.224:3306/scores_v2', echo=False)

查看进度excel文件


In [13]:
try:
    CHANGETIME_SCHEDULE
except:
    CHANGETIME_SCHEDULE=os.path.getmtime('/data1/public/02数据/2016年数据状态跟进表.xlsx')
    EXCEL_SCHEDULE=pd.read_excel('/data1/public/02数据/2016年数据状态跟进表.xlsx')
    print(EXCEL_SCHEDULE)
else:
    if CHANGETIME_SCHEDULE != os.path.getmtime('/data1/public/02数据/2016年数据状态跟进表.xlsx'):
        CHANGETIME_SCHEDULE=os.path.getmtime('/data1/public/02数据/2016年数据状态跟进表.xlsx')
        EXCEL_SCHEDULE=pd.read_excel('/data1/public/02数据/2016年数据状态跟进表.xlsx')
        print(EXCEL_SCHEDULE)


        陈继平、陈晓云、连孝丽 Unnamed: 1                      Unnamed: 2    庹总、周博  \
省份  文理科          购买         校验                            文件路径     入数据库   
安徽  文科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   
NaN 理科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   
北京  文科           已买          是  public--购买2016年最详细各省份数据(for周博)  已做/0525   
NaN 理科           已买          是  public--购买2016年最详细各省份数据(for周博)  已做/0525   
重庆  文科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   
NaN 理科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   
福建  文科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   
NaN 理科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   
广东  文科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   
NaN 理科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   
广西  文科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   
NaN 理科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   
甘肃  文科          NaN        NaN                             NaN      NaN   
NaN 理科          NaN        NaN                             NaN      NaN   
贵州  文科          NaN        NaN                             NaN      NaN   
NaN 理科          NaN        NaN                             NaN      NaN   
海南  文科          NaN        NaN                             NaN      NaN   
NaN 理科          NaN        NaN                             NaN      NaN   
河南  文科           已买          是  public--购买2016年最详细各省份数据(for周博)      已做/   
NaN 理科           已买          是   public-购买2016年最详细各省份数据(for周博)       已做   
河北  文科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   
NaN 理科           已买          是   public-购买2016年最详细各省份数据(for周博)       已做   
黑龙江 文科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   
NaN 理科           已买          是   public-购买2016年最详细各省份数据(for周博)       已做   
湖北  文科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   
NaN 理科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   
湖南  文科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   
NaN 理科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   
吉林  文科           已买    #没有批次信息  public--购买2016年最详细各省份数据(for周博)      NaN   
...             ...        ...                             ...      ...   
江西  文科          NaN        NaN                             NaN      NaN   
NaN 理科          NaN        NaN                             NaN      NaN   
辽宁  文科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   
NaN 理科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   
内蒙古 文科           已买          是  public--购买2016年最详细各省份数据(for周博)      已做/   
NaN 理科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   
宁夏  文科          NaN        NaN                             NaN      NaN   
NaN 理科          NaN        NaN                             NaN      NaN   
青海  文科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   
NaN 理科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   
山东  文科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   
NaN 理科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   
山西  文科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   
NaN 理科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   
陕西  文科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   
NaN 理科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   
上海  文科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   
NaN 理科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   
四川  文科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   
NaN 理科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   
天津  文科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   
NaN 理科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   
新疆  文科          NaN        NaN                             NaN      NaN   
NaN 理科          NaN        NaN                             NaN      NaN   
西藏  文科          NaN        NaN                             NaN      NaN   
NaN 理科          NaN        NaN                             NaN      NaN   
云南  文科          NaN        NaN                             NaN      NaN   
NaN 理科          NaN        NaN                             NaN      NaN   
浙江  文科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   
NaN 理科           已买          是  public--购买2016年最详细各省份数据(for周博)       已做   

        Unnamed: 4      Unnamed: 5  \
省份  文理科     发布到dev              备注   
安徽  文科          已做          只有专业数据   
NaN 理科          已做          只有专业数据   
北京  文科          已做  排名已经添加20170612   
NaN 理科          已做  排名已经添加20170612   
重庆  文科          已做               无   
NaN 理科          已做               无   
福建  文科         NaN             NaN   
NaN 理科         NaN             NaN   
广东  文科          已做          只有专业数据   
NaN 理科          已做          只有专业数据   
广西  文科         NaN             NaN   
NaN 理科         NaN             NaN   
甘肃  文科         NaN             NaN   
NaN 理科         NaN             NaN   
贵州  文科         NaN             NaN   
NaN 理科         NaN             NaN   
海南  文科         NaN             NaN   
NaN 理科         NaN             NaN   
河南  文科          已做          只有专业数据   
NaN 理科          已做          只有专业数据   
河北  文科          已做             NaN   
NaN 理科          已做             NaN   
黑龙江 文科          已做         只有专业数据    
NaN 理科          已做         只有专业数据    
湖北  文科          已做         只有专业数据    
NaN 理科          已做         只有专业数据    
湖南  文科          已做          只有专业数据   
NaN 理科          已做          只有专业数据   
吉林  文科         NaN             NaN   
...            ...             ...   
江西  文科         NaN             NaN   
NaN 理科         NaN             NaN   
辽宁  文科         NaN          缺三本数据    
NaN 理科         NaN          缺三本数据    
内蒙古 文科         NaN             NaN   
NaN 理科         NaN             NaN   
宁夏  文科         NaN             NaN   
NaN 理科         NaN             NaN   
青海  文科          已做          批次信息不准   
NaN 理科          已做          批次信息不准   
山东  文科          已做          只有专业数据   
NaN 理科          已做          只有专业数据   
山西  文科          已做          只有专业数据   
NaN 理科          已做          只有专业数据   
陕西  文科          已做             NaN   
NaN 理科          已做             NaN   
上海  文科         NaN         上海只有本科批   
NaN 理科         NaN              同上   
四川  文科         NaN             NaN   
NaN 理科         NaN             NaN   
天津  文科          已做          只有专业数据   
NaN 理科          已做          只有专业数据   
新疆  文科         NaN             NaN   
NaN 理科         NaN             NaN   
西藏  文科         NaN             NaN   
NaN 理科         NaN             NaN   
云南  文科         NaN             NaN   
NaN 理科         NaN             NaN   
浙江  文科         NaN             NaN   
NaN 理科         NaN             NaN   

                                       陈继平、陈晓云、连孝丽.1  \
省份  文理科                                         页面检查   
安徽  文科                                            可做   
NaN 理科                                            可做   
北京  文科        #院校详情页,16年录取分数 无排名,大学详情页(上)无平均分,最高最低排名   
NaN 理科                                           #同上   
重庆  文科                #按分推荐大学:平均分无排名;大学详情页(上)无平均分排名;   
NaN 理科                                           #同上   
福建  文科                           #按分推荐大学专科无数据,分数无排名;   
NaN 理科                                           #同上   
广东  文科                                            可做   
NaN 理科                                            可做   
广西  文科                                  #按分推荐大学专科无数据   
NaN 理科                                           #同上   
甘肃  文科                                           NaN   
NaN 理科                                           NaN   
贵州  文科                                           NaN   
NaN 理科                                           NaN   
海南  文科                                           NaN   
NaN 理科                                           NaN   
河南  文科                                            可做   
NaN 理科                                            可做   
河北  文科                                            可做   
NaN 理科                                            可做   
黑龙江 文科                                            可做   
NaN 理科                                            可做   
湖北  文科                                            可做   
NaN 理科                                            可做   
湖南  文科                                            可做   
NaN 理科                                            可做   
吉林  文科                                           NaN   
...                                              ...   
江西  文科                                           NaN   
NaN 理科                                           NaN   
辽宁  文科            #按分推荐大学无最高分,及全部排名,大学分数线无最高分,无专业分数线   
NaN 理科                                           #同上   
内蒙古 文科   #按分数推荐大学:无最高分,及全部排名;专科无分数,大学分数线:无最高分;专业分数线:   
NaN 理科                                           #同上   
宁夏  文科                                           NaN   
NaN 理科                                           NaN   
青海  文科                                            可做   
NaN 理科                                            可做   
山东  文科                                            可做   
NaN 理科                                            可做   
山西  文科                                            可做   
NaN 理科                                            可做   
陕西  文科                                            可做   
NaN 理科                                            可做   
上海  文科                  #大学分数线:无平均分;专业分数线:无最高分,无平均分;   
NaN 理科                                           #同上   
四川  文科                                   #按分数推荐大学无数据   
NaN 理科                                           #同上   
天津  文科                                            可做   
NaN 理科                                            可做   
新疆  文科                                           NaN   
NaN 理科                                           NaN   
西藏  文科                                           NaN   
NaN 理科                                           NaN   
云南  文科                                           NaN   
NaN 理科                                           NaN   
浙江  文科                                  #按分推荐大:无分数排名   
NaN 理科                                           #同上   

                                                Unnamed: 7  \
省份  文理科                                                 备注   
安徽  文科                                                 NaN   
NaN 理科                                                 NaN   
北京  文科                       理科 350 按分推荐大学无数据 购买数据有350以下数据   
NaN 理科                                                 NaN   
重庆  文科                                                 NaN   
NaN 理科                                                 NaN   
福建  文科   #\n按分推荐大学 400分理科华侨大学购买数据有分数,但在按分推挤大学里面未显示;\n武夷...   
NaN 理科                                                 NaN   
广东  文科                                                 NaN   
NaN 理科                                                 NaN   
广西  文科   #400分 理科 推荐出了哈尔滨工业大学、\n桂林电子科技大学,按分推荐页面无数据显示,很多...   
NaN 理科                                                 NaN   
甘肃  文科                                                 NaN   
NaN 理科                                                 NaN   
贵州  文科                                                 NaN   
NaN 理科                                                 NaN   
海南  文科                                                 NaN   
NaN 理科                                                 NaN   
河南  文科                                                 NaN   
NaN 理科                                                 NaN   
河北  文科                                                 NaN   
NaN 理科                                                 NaN   
黑龙江 文科                                                 NaN   
NaN 理科                                                 NaN   
湖北  文科                                                 NaN   
NaN 理科                                                 NaN   
湖南  文科                                                 NaN   
NaN 理科                                                 NaN   
吉林  文科                                                 NaN   
...                                                    ...   
江西  文科                                                 NaN   
NaN 理科                                                 NaN   
辽宁  文科   #文科 450 推荐出了\n南昌大学、黑龙江中医药大学,在按分推荐页面无数据显示,很多院校都...   
NaN 理科                                                 NaN   
内蒙古 文科   #文科 450 推荐出了\n西北大学、中国药科大学,但在按分推荐页面无数据显示,很多院校都是...   
NaN 理科                                                 NaN   
宁夏  文科                                                 NaN   
NaN 理科                                                 NaN   
青海  文科                                                 NaN   
NaN 理科                                                 NaN   
山东  文科                                                 NaN   
NaN 理科                                                 NaN   
山西  文科                                                 NaN   
NaN 理科                                                 NaN   
陕西  文科                                                 NaN   
NaN 理科                                                 NaN   
上海  文科                                                 NaN   
NaN 理科                                                 NaN   
四川  文科                                                 NaN   
NaN 理科                                                 NaN   
天津  文科                                                 NaN   
NaN 理科                                                 NaN   
新疆  文科                                                 NaN   
NaN 理科                                                 NaN   
西藏  文科                                                 NaN   
NaN 理科                                                 NaN   
云南  文科                                                 NaN   
NaN 理科                                                 NaN   
浙江  文科                                                 NaN   
NaN 理科                                                 NaN   

                                                Unnamed: 8  
省份  文理科                                                NaN  
安徽  文科                                                 NaN  
NaN 理科                                                 NaN  
北京  文科   http://192.168.2.225/mwiki/images/a/a1/Dev_bei...  
NaN 理科                                                 NaN  
重庆  文科                                                 NaN  
NaN 理科                                                 NaN  
福建  文科                                                 NaN  
NaN 理科                                                 NaN  
广东  文科                                                 NaN  
NaN 理科                                                 NaN  
广西  文科                                                 NaN  
NaN 理科                                                 NaN  
甘肃  文科                                                 NaN  
NaN 理科                                                 NaN  
贵州  文科                                                 NaN  
NaN 理科                                                 NaN  
海南  文科                                                 NaN  
NaN 理科                                                 NaN  
河南  文科                                                 NaN  
NaN 理科                                                 NaN  
河北  文科                                                 NaN  
NaN 理科                                                 NaN  
黑龙江 文科                                                 NaN  
NaN 理科                                                 NaN  
湖北  文科                                                 NaN  
NaN 理科                                                 NaN  
湖南  文科                                                 NaN  
NaN 理科                                                 NaN  
吉林  文科                                                 NaN  
...                                                    ...  
江西  文科                                                 NaN  
NaN 理科                                                 NaN  
辽宁  文科                                                 NaN  
NaN 理科                                                 NaN  
内蒙古 文科                                                 NaN  
NaN 理科                                                 NaN  
宁夏  文科                                                 NaN  
NaN 理科                                                 NaN  
青海  文科                                                 NaN  
NaN 理科                                                 NaN  
山东  文科                                                 NaN  
NaN 理科                                                 NaN  
山西  文科                                                 NaN  
NaN 理科                                                 NaN  
陕西  文科                                                 NaN  
NaN 理科                                                 NaN  
上海  文科                                                 NaN  
NaN 理科                                                 NaN  
四川  文科                                                 NaN  
NaN 理科                                                 NaN  
天津  文科                                                 NaN  
NaN 理科                                                 NaN  
新疆  文科                                                 NaN  
NaN 理科                                                 NaN  
西藏  文科                                                 NaN  
NaN 理科                                                 NaN  
云南  文科                                                 NaN  
NaN 理科                                                 NaN  
浙江  文科                                                 NaN  
NaN 理科                                                 NaN  

[63 rows x 9 columns]

四川数据


In [14]:
# DEFINE some constant
ROOT_DIR='/data1/public/购买2016年最详细各省份数据(for周博)/'
DISTRICT='四川'
TBL_NAME='si_chuan'

BASE_PATH=ROOT_DIR+DISTRICT+'/'
print(os.listdir(BASE_PATH))
S_FILE_PATH=BASE_PATH + DISTRICT + '2016年院校.xlsx'
M_FILE_PATH=BASE_PATH + DISTRICT + '2016年专业.xlsx'

# 导入原始学校数据
if os.path.exists(S_FILE_PATH):
    try:
        CHANGETIME_S_FILE_PATH
    except:
        CHANGETIME_S_FILE_PATH=os.path.getctime(S_FILE_PATH)
        SCHOOL_EXCEL = pd.read_excel(S_FILE_PATH,converters = {'最高分': str,'平均分': str,})
    else:
        if CHANGETIME_S_FILE_PATH != os.path.getctime(S_FILE_PATH):
            SCHOOL_EXCEL = pd.read_excel(S_FILE_PATH,converters = {'最高分': str,'平均分': str,})
else:
    print('院校文件不存在!!')

# 导入原始专业数据
if os.path.exists(M_FILE_PATH):
    try:
        CHANGETIME_M_FILE_PATH
    except:
        CHANGETIME_M_FILE_PATH=os.path.getctime(M_FILE_PATH)
        MAJOR_EXCEL = pd.read_excel(M_FILE_PATH,converters = {'最高分': str,'平均分': str,})
    else:
        if CHANGETIME_M_FILE_PATH != os.path.getctime(M_FILE_PATH):
            MAJOR_EXCEL = pd.read_excel(M_FILE_PATH,converters = {'最高分': str,'平均分': str,})
else:
    print('专业数据文件不存在!!')


['四川2016年专业.xlsx', '四川2016年院校.xlsx', 'sc专业2014-2015.xlsx', '~$sc专业2014-2015.xlsx', 'sc院校2014-2015.xlsx']

In [15]:
# 查看各columns信息
for clm in SCHOOL_EXCEL.columns:
    print(clm)
    if clm not in ['院校名称', '最高分', '最低分位次', '最高分位次', '最低分', '平均分','平均分位次', '录取人数']:
        print(SCHOOL_EXCEL[clm].unique())
#         pass


院校代码
[ 335  351  355 ..., 4160 4199 4533]
院校名称
最低分
最低分位次
平均分
平均分位次
最高分
最高分位次
录取人数
批次
['本科二批' '本科一批' '地方专项' '国家专项' '本科提前批' '专科二批' '专科一批']
科类
['理工' '文史']
计划性质
['统招' '高职']

In [16]:
# 查看各columns信息
for clm in MAJOR_EXCEL.columns:
    print(clm)
    if clm not in ['院校名称','院校代码', '专业名称','专业代码', '最高分', '最低分位次','平均分位次','平均位次', '最高分位次', '最低分', '平均分', '录取人数', '录取人', '院校代码','专业代码','该专业总录取数']:
        print(MAJOR_EXCEL[clm].unique())
#         pass


院校代码
院校名称
专业代码
专业名称
最低分
最低分位次
平均分
平均分位次
最高分
最高分位次
录取人
批次名称
['专科二批' '本科提前批' '本科二批' '本科一批' '国家专项' '地方专项' '专科一批']
科类
['理工' '文史']
计划性质
['高职' '统招']
层次
['专科' '重点' '本科']

In [17]:
# some utility

import re
def distinguish(x):
    
    ## for nei_meng_gu
    if re.search('普通理科', str(x)):
        return '理科'
    
    if re.search('普通文科', str(x)):
        return '文科'
    
    if re.search('理', str(x)):
        return '理科'
    
    if re.search('文', str(x)):
        return '文科'
    
    return x
def distinguish_round(x):
    
    ## for nei_meng_gu
    if re.search('本科二批C(三本)', str(x)):
        return '本科三批'
    
    
    if re.search('本科第三批', str(x)):
        return '本科三批'
    if re.search('本科第二批', str(x)):
        return '本科二批'    
    if re.search('本科第一批', str(x)):
        return '本科一批'
    
    if re.search('本科提前', str(x)):
        return '本科二批'    
    if re.search('本科提前批', str(x)):
        return '提前批次'
    if re.search('本科二批', str(x)):
        return '本科二批' 
    if re.search('本科一批', str(x)):
        return '本科一批' 
    if re.search('本科三批', str(x)):
        return '本科三批'
    
    if re.search('本一批', str(x)):
        return '本科一批'
    if re.search('本二批', str(x)):
        return '本科二批'
    if re.search('本三批', str(x)):
        return '本科三批'
    
    if re.search('专科', str(x)):
        return '专科'
    return str(x)

In [18]:
# 读取数据到DataFrame
SCHOOL_DF = DataFrame({
        'category':SCHOOL_EXCEL['科类'].apply(distinguish), 
        'school_name':SCHOOL_EXCEL['院校名称'],
        'district':DISTRICT,
        'round':SCHOOL_EXCEL['批次'].apply(distinguish_round),
        'highest_score':SCHOOL_EXCEL['最高分'],
        'highest_score_rank':SCHOOL_EXCEL['最高分位次'],
#         'highest_score_rank':'--',
        'average_score':SCHOOL_EXCEL['平均分'],
        'average_score_rank':SCHOOL_EXCEL['平均分位次'],
#         'average_score_rank':'--',
        'lowest_score':SCHOOL_EXCEL['最低分'],
        'lowest_score_rank':SCHOOL_EXCEL['最低分位次'],
#         'lowest_score_rank':'--',
        'year':2016,
        'tot_rc':SCHOOL_EXCEL['录取人数']
    })
# add to local db for every province 
# SCHOOL_DF.to_sql(name='school_cutoff_scores_'+TBL_NAME+'_2016', con=DB_LOCAL, if_exists = 'replace', index=False)

In [9]:
SCHOOL_DF=SCHOOL_DF[SCHOOL_DF['year']==2016]
# add to local db for every province 
SCHOOL_DF.to_sql(name='school_cutoff_scores_'+TBL_NAME+'_2016', con=DB_LOCAL, if_exists = 'replace', index=False)
sql='ALTER TABLE `school_cutoff_scores_'+TBL_NAME+'_2016` ADD `id` INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (`id`);'
with DB_LOCAL.begin() as conn:     # TRANSACTION
    conn.execute(sql)
sql='ALTER TABLE `school_cutoff_scores_'+TBL_NAME+'_2016` CHANGE `category` `category` TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL AFTER `id`, CHANGE `district` `district` TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL AFTER `id`, CHANGE `school_name` `school_name` TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL AFTER `id`;'
with DB_LOCAL.begin() as conn:     # TRANSACTION
    conn.execute(sql)

In [19]:
# 只取2016年数据 
SCHOOL_DF=SCHOOL_DF[SCHOOL_DF['year']==2016]
SCHOOL_DF.to_sql(name='school_cutoff_scores_2016', con=DB_ALI, if_exists = 'append', index=False)
SCHOOL_DF.to_sql(name='school_cutoff_scores_2016', con=DB_LOCAL, if_exists = 'append', index=False)
# add to ali yun db for 按分推荐大学
if 'tot_rc' in SCHOOL_DF.columns:
    SCHOOL_DF=SCHOOL_DF.drop('tot_rc',1)
SCHOOL_DF.to_sql(name='school_cutoff_scores_2013_2015', chunksize=1000, con=DB_ALI, if_exists = 'append', index=False)

# add to ali yun db for 大学详情|大学分数线
if 'tot_rc' in SCHOOL_DF.columns:
    SCHOOL_DF=SCHOOL_DF.drop('tot_rc',1)
SCHOOL_DF.to_sql(name='school_cutoff_scores_2008_2015', chunksize=1000, con=DB_ALI, if_exists = 'append', index=False)

In [15]:
# add to 大学分数线
# if 'tot_rc' in SCHOOL_DF.columns:
#     SCHOOL_DF=SCHOOL_DF.drop('tot_rc',1)
# SCHOOL_DF.to_sql(name='school_cutoff_scores_2016', con=DB_ALI, if_exists = 'append', index=False)

In [10]:
MAJOR_DF = DataFrame({
        'category':MAJOR_EXCEL['科类'].apply(distinguish), 
        'school_name':MAJOR_EXCEL['院校名称'],
        'district':DISTRICT,
        'round':MAJOR_EXCEL['批次名称'].apply(distinguish_round),
        'highest_score':MAJOR_EXCEL['最高分'],
        'highest_score_rank':MAJOR_EXCEL['最高分位次'],
#         'highest_score_rank':'--',
        'average_score':MAJOR_EXCEL['平均分'],
        'average_score_rank':MAJOR_EXCEL['平均分位次'],
#         'average_score_rank':'--',
        'lowest_score':MAJOR_EXCEL['最低分'],
        'lowest_score_rank':MAJOR_EXCEL['最低分位次'],
#         'lowest_score_rank':'--',
        'year':2016,
        'discipline':MAJOR_EXCEL['专业名称'],
        'tot_rc':MAJOR_EXCEL['录取人'],
    })

In [11]:
MAJOR_DF=MAJOR_DF[MAJOR_DF['year']==2016]
# add to local db for every province 
MAJOR_DF.to_sql(name='school_cutoff_scores_'+TBL_NAME+'_M_2016', chunksize=1000,con=DB_LOCAL, if_exists = 'replace', index=False)
sql='ALTER TABLE `school_cutoff_scores_'+TBL_NAME+'_M_2016` ADD `id` INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (`id`);'
with DB_LOCAL.begin() as conn:     # TRANSACTION
    conn.execute(sql)
sql='ALTER TABLE `school_cutoff_scores_'+TBL_NAME+'_M_2016` CHANGE `category` `category` TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL AFTER `id`, CHANGE `district` `district` TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL AFTER `id`, CHANGE `school_name` `school_name` TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL AFTER `id`;'
with DB_LOCAL.begin() as conn:     # TRANSACTION
    conn.execute(sql)

In [19]:
# 只取2016年数据
MAJOR_DF=MAJOR_DF[MAJOR_DF.year==2016]
MAJOR_DF[:3]


Out[19]:
average_score average_score_rank category discipline district highest_score highest_score_rank lowest_score lowest_score_rank round school_name tot_rc year
0 221 267687 理科 模具设计与制造 ... 四川 221 267687 221 267687 专科 南京机电职业技术学院 1 2016
1 294 247568 理科 机电一体化技术 ... 四川 294 247568 294 247568 专科 南京机电职业技术学院 1 2016
2 272 254493 理科 电气自动化技术 ... 四川 278 252696 266 256312 专科 南京机电职业技术学院 2 2016

In [20]:
if 'tot_rc' in MAJOR_DF.columns:
    MAJOR_DF=MAJOR_DF.drop('tot_rc',1)
if 'lowest_score_rank' in MAJOR_DF.columns:
    MAJOR_DF=MAJOR_DF.drop('lowest_score_rank',1)
if 'highest_score_rank' in MAJOR_DF.columns:
    MAJOR_DF=MAJOR_DF.drop('highest_score_rank',1)
if 'average_score_rank' in MAJOR_DF.columns:
    MAJOR_DF=MAJOR_DF.drop('average_score_rank',1)
MAJOR_DF.to_sql(name='school_cutoff_scores_by_y_m_src2_uniq2', chunksize=500, con=DB_ALI, if_exists = 'append', index=False)

In [ ]: