作业5
import pandas as pdfrom sqlalchemy import create_engineengine = create_engine('mysql+pymysql://root:102011@localhost/test?charset=utf8')sql = pd.read_sql('all_gzdata', engine, chunksize = 10000)'''用create_engine建立连接,连接地址的意思依次为“数据库格式(mysql)+程序名(pymysql)+账号密码@地址端口/数据库名(test)”,最后指定编码为utf8;all_gzdata是表名,engine是连接数据的引擎,chunksize指定每次读取1万条记录。这时候sql是一个容器,未真正读取数据。'''
代码2
counts = [ i['fullURLId'].value_counts() for i in sql] #按次10000存取,逐块统计counts = counts.copy()counts = pd.concat(counts).groupby(level=0).sum() #合并统计结果,把相同的统计项合并(即按index分组并求和)counts = counts.reset_index() #重新设置index,将原来的index作为counts的一列。counts.columns = ['index', 'num'] #重新设置列名,主要是第二列,默认为0counts['type'] = counts['index'].str.extract('(\d{3})') #提取前三个数字作为类别idcounts_ = counts[['type', 'num']].groupby('type').sum() #按类别合并counts_.sort_values('num', ascending = False) #降序排列counts_['percentage'] = (counts_['num']/counts_['num'].sum())*100print(counts_)
type numpercentage101 411665 49.15696510217357 2.0726011031715 0.2047881063957 0.472506107 182900 21.840110199 201426 24.05230230118430 2.200728
作者:白-white
来源链接:https://www.cnblogs.com/0202-white/p/17378955.html
版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。
2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。